我有 2 个项目,一个是 MVC 站点,另一个是类库。MVC 站点引用了类库。
IWindsorInstaller
我在 MVC 站点和类库中有一个实现。MVC 站点中没有直接引用类库中定义的任何类的代码,它们都是在别处定义的接口的实现。
在 MVC 站点中,在应用程序启动中我正在做通常的事情
var container = new Castle.Windsor.WindsorContainer();
container.Install(FromAssembly.InThisApplication());
这不会调用类库中的安装程序。但是,如果我这样做
container.Install(FromAssembly.Containing<ClassFromTheClassLibrary>());
安装程序被调用两次。似乎 Castle 需要对其他程序集的实际代码内引用才能获取InThisApplication
它。我可以通过这样做来解决这个问题:
container.Install(FromAssembly.This());
container.Install(FromAssembly.Containing<ClassFromTheClassLibrary>());
但我希望不必直接引用其他程序集。
更新命名空间是:
- MVC 应用程序是 MyApp.OnlineProducts.Service
- 类库是 MyApp.Individuals.Service