Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection 如何跨多个程序集使用WindsorInstaller进行注册_Dependency Injection_Castle Windsor_Ioc Container - Fatal编程技术网

Dependency injection 如何跨多个程序集使用WindsorInstaller进行注册

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

我正在使用Castle Windsor来处理依赖注入,到目前为止,它一直工作得很好

然而,我现在正试图扩展我的项目并添加一些额外的库——我现在正在努力寻找利用Castle的最佳方法

我目前有以下程序集

接口(包含IDBContext接口) MyProject.BusinessLogic(包含Castle Windsor实现) MyProject.DataAccess(包含IDBContext的实现)

我目前有一个名为DBContextInstaller的安装程序,它只实现以下功能:

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
是否在另一个应用程序中使用(因此,您是否在多个应用程序上共享程序集)?