Хотел задать быстрый вопрос касательно замка Виндзор и внедрения IoC для контроллеров в районах.Поддерживает ли Castle 2.5 области MVC 2.0?
Моя конфигурация Castle работает нормально для моего корневого контроллера в корне моего сайта, но никакие контроллеры области не найдены с
IControllerFactory 'XXX.Castle.WindsorControllerFactory 'не вернул контроллер для имени' Registration '.
Я использую Castle напрямую, а не через MvcContrib
Код следующим образом:
class WindsorControllerFactory : DefaultControllerFactory
{
WindsorContainer container;
// The constructor:
// 1. Sets up a new IoC container
// 2. Registers all components specified in web.config
// 3. Registers all controller types as components
public WindsorControllerFactory()
{
// Instantiate a container, taking configuration from web.config
container = new WindsorContainer();
// Also register all the controller types as transient
var controllerTypes =
from t in Assembly.GetExecutingAssembly().GetTypes()
where typeof(IController).IsAssignableFrom(t)
select t;
foreach (Type t in controllerTypes) {
//container.AddComponentLifeStyle(t.FullName, t, LifestyleType.Transient);
container.Register(Component.For(t).Named(t.FullName).LifeStyle.Transient);
}
container.Install(new WindsorInstaller());
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType != null)
{
return (IController)container.Resolve(controllerType);
}
return null;// base.GetControllerInstance(requestContext, controllerType);
}
}
Большое спасибо
Ричард