Dependency injection 如何跨多个程序集使用WindsorInstaller进行注册
我正在使用Castle Windsor来处理依赖注入,到目前为止,它一直工作得很好 然而,我现在正试图扩展我的项目并添加一些额外的库——我现在正在努力寻找利用Castle的最佳方法 我目前有以下程序集 接口(包含IDBContext接口) MyProject.BusinessLogic(包含Castle Windsor实现) MyProject.DataAccess(包含IDBContext的实现) 我目前有一个名为DBContextInstaller的安装程序,它只实现以下功能:Dependency injection 如何跨多个程序集使用WindsorInstaller进行注册,dependency-injection,castle-windsor,ioc-container,Dependency Injection,Castle Windsor,Ioc Container,我正在使用Castle Windsor来处理依赖注入,到目前为止,它一直工作得很好 然而,我现在正试图扩展我的项目并添加一些额外的库——我现在正在努力寻找利用Castle的最佳方法 我目前有以下程序集 接口(包含IDBContext接口) MyProject.BusinessLogic(包含Castle Windsor实现) MyProject.DataAccess(包含IDBContext的实现) 我目前有一个名为DBContextInstaller的安装程序,它只实现以下功能: public
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(AllTypes.FromThisAssembly()
.BasedOn<IDBContext>()
.WithService
.DefaultInterface()
.Configure(reg => reg.LifeStyle.PerWebRequest));
}
public void安装(IWindsorContainer,IConfigurationStore)
{
container.Register(AllTypes.fromthissassembly())
.BasedOn()
.带服务
.DefaultInterface()
.Configure(reg=>reg.lifesture.PerWebRequest));
}
我现在在这个项目中有了一个新的程序集——我们把它叫做MyProject.UserService,它恰好有一个IDBContext的新的具体实现
所以我的问题是-如何更改Container.Register语句以使其检查多个库。注意:我完全希望将来有越来越多的库添加到这个场景中。我希望这个安装程序能够找到所有的实现
TIA您可以使用所有类型。FromAssemblyInDirectory
container.Register(AllTypes.FromAssemblyInDirectory(new AssemblyFilter(folderPath)));
如果您有多个
IDBContext
的实现,应用程序应该选择哪一个?或者MyProject.UserServices
是否在另一个应用程序中使用(因此,您是否在多个应用程序上共享程序集)?