我正在构建带有3层体系结构和asp.net核心的软件,正如您所知道的,依赖注入是内置到Asp.net内核中的
如我所知,3层架构图如下所示:

根据上面的图表,数据访问层和用户界面层之间没有任何直接的联系。
我的项目是:

我的问题是,如果UI和Dal之间没有直接联系,我们如何在UI层中将DAL注册为服务?
发布于 2019-08-27 10:33:55
应用程序的入口点( UI项目)必须设置DI容器,提供所有依赖项的实现。这就是为什么它必须与所有其他项目有直接的联系(引用)。
重要的是UI类只依赖于BLL类。附加引用仅用于设置DI。
发布于 2019-09-02 13:15:30
第一点--为了简单起见,Rumen的回答是正确的。
我在更大的解决方案中所做的是有一个单独的基础设施项目,它设置依赖注入容器(在.net核心中,这将是IServiceCollection)。
例如,在我目前的解决方案中,我有一个网站&一个API。在我的基础设施项目中,这两个调用方法都是用来设置依赖注入的。在我的UI项目中,我可以决定我想要设置哪些依赖项,而不需要知道代码。例如:
这种方法有两个优点:
顺便说一句,我不确定这对其他DI框架的转换效果如何。我猜想它们都设置了类似的依赖项,但我只使用本机.net核心依赖项注入完成了上面的操作。
https://softwareengineering.stackexchange.com/questions/396551
复制相似问题