想要问一个关于温莎城堡和实施区域控制人员IoC的快速问题。 Castle 2.5支持MVC 2.0区域吗?城堡温莎与MVC 2.0和地区
我的城堡配置工程确定为我的根控制器我的网站的根目录,但任何区域控制器不与
的IControllerFactory“XXX.Castle.WindsorControllerFactory”发现名称为“未返回控制器注册'。
我使用城堡直接而不是通过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);
}
}
非常感谢
理查德
你使用的是什么WindsorControllerFactory得到异常?如果它是自定义的,请发布代码。如果是MVCContrib,什么版本? – 2010-09-17 23:25:54
以及你如何注册控制器? – 2010-09-18 14:14:32
更新了以前的评论问题..感谢Mauricio – 2010-09-18 19:34:14