想要問一個關於溫莎城堡和實施區域控制人員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