我正在尝试关注书籍:Pro ASP.NET MVC Framework by Steven Sanderson ...
第container = new WindsorContainer(xi);
行会产生此错误:
无法从'DomainModel.Abstract.IPeopleRepository,DomainModel'转换为System.Type - 可能无法找到类型**
public WindsorControllerFactory()
{
ConfigResource confres = new ConfigResource("castle");
XmlInterpreter xi = new XmlInterpreter(confres);
container = new WindsorContainer(xi);
// 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);
}
}
城堡配置:
<castle>
<components>
<component id="PeopleRepository"
service="DomainModel.Abstract.IPeopleRepository, DomainModel"
type="DomainModel.Concrete.FakePeopleRepository, DomainModel"
>
如何解决这个问题?
答案 0 :(得分:3)
此外,在控制器工厂内注册控制器是不好的做法。控制器工厂用于实例化控制器,而不是管理容器注册。
更新:ASP.NET MVC 3的MvcContrib删除了所有控制器工厂,并弃用了所有IoC集成。
答案 1 :(得分:1)
我将丢失空的PeopleController
构造函数