Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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
C# 洋葱架构和在DI容器中注册依赖项_C#_Dependency Injection_Inversion Of Control_Onion Architecture - Fatal编程技术网

C# 洋葱架构和在DI容器中注册依赖项

C# 洋葱架构和在DI容器中注册依赖项,c#,dependency-injection,inversion-of-control,onion-architecture,C#,Dependency Injection,Inversion Of Control,Onion Architecture,我一直在阅读洋葱架构,我有一个简单的问题,关于如何安排程序集依赖项,使DI容器能够连接所有内容 假设一个非常简单的解决方案具有以下结构: UI=>BL大多数情况下,这是通过让容器知道DAL(通过配置)并将DAL的程序集与UI或其他已知位置(GAC等)粘贴在同一目录中来完成的。在Spring.NET中,您需要在Spring配置文件中添加DAL的类型。在Castle Windsor中,您可以在每个DLL中包含一个实现IWindsorInstaller的类,该DLL具有要在IoC容器中注册的类型,并在

我一直在阅读洋葱架构,我有一个简单的问题,关于如何安排程序集依赖项,使DI容器能够连接所有内容

假设一个非常简单的解决方案具有以下结构:


UI=>BL大多数情况下,这是通过让容器知道DAL(通过配置)并将DAL的程序集与UI或其他已知位置(GAC等)粘贴在同一目录中来完成的。在Spring.NET中,您需要在Spring配置文件中添加DAL的类型。在Castle Windsor中,您可以在每个DLL中包含一个实现IWindsorInstaller的类,该DLL具有要在IoC容器中注册的类型,并在UI中告诉容器查找某个目录中的所有组件。

因此在Spring中,您必须使用XML配置才能连接起来?在温莎,根据上面的例子,DAL会有一个安装程序,可以在运行时在UI的入口点(app.xaml、global.asax等)找到它,这是正确的。对于spring.net:。对于Castle IoC(他们的文档乱七八糟,但我实际上更喜欢Castle):有趣而且有意义。在网上闲逛之后,我看到了一些文章,这些文章提倡使用程序集来解决依赖关系。我认为这将允许不必在每个项目中引用温莎(例如)。是的,这是一个完全可行(并且可能是可取的)的方法。