我已经将我所有的 Windsor 安装程序与他们自己的 IOC 程序集分离。可以像这样从未引用的程序集中注册类型。
container.Register(
Classes
.FromAssemblyNamed("MyProject.Web")
.BasedOn<IController>()
.LifestylePerWebRequest(),
Classes
.FromAssemblyNamed("MyProject.Web")
.BasedOn<IBaseHttpModule>()
.LifestylePerWebRequest()
);
目前这对我来说很好,但我想明确说明我的模块注册的顺序。
我尝试了以下方法,但发现这不起作用,因为 MyProject.Web 无法在我的 IOC dll 中引用,因为这会创建循环依赖。
container.Register(
Component
.For<IBaseHttpModule>()
.ImplementedBy(Type.GetType("MyProject.Web.Modules.AuthenticationModule, MyProject.Web"))
.LifestylePerWebRequest()
);
有没有办法让这种东西与温莎一起工作,我已经在对象浏览器中搜索了文档和 dll,但我没有找到任何看起来像我的解决方案的东西。