1
У меня есть реализация ControllerFactory для обработки инъекции конструкторы в контроллерах, однако я хочу использовать путь по умолчанию для разрешения контроллеров в случае, если некоторые из них не зарегистрированы:Есть ли безопасный способ решения компонента из Castle.Windsor?
public class WindsorControllerFactory : DefaultControllerFactory
{
private readonly IWindsorContainer _container;
public WindsorControllerFactory(IWindsorContainer container)
{
_container = container;
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType != null)
{
try
{
return _container.Resolve(controllerType) as IController;
}
catch(Exception ex)
{
return base.GetControllerInstance(requestContext, controllerType);
}
}
else
{
return base.GetControllerInstance(requestContext, controllerType);
}
}
}
Это работает, но я действительно хотел бы чтобы избежать исключения
Почему некоторые контроллеры не будут зарегистрированы в вашем контейнере? – Steven
Возможно, это неправильно, но я хочу зарегистрироваться в контейнерах только с параметризованными конструкторами, но не со всеми. – kagetoki
И каково было бы это преимущество? – Steven