ASP.NET CORE中的Unity(依赖注入)类似于ASP.NET Framework中的

时间:2019-03-23 08:13:30

标签: c# asp.net-core onion-architecture

(这是我到目前为止的第一篇文章,请放心) 我最近在ASP.NET Framework中使用Onion Architecture,一切都很好,直到老板告诉我他希望在新项目中使用类似的体系结构,但这次使用ASP.NET CORE。 基本上,ASP.NET CORE可以执行与框架相同的行为,但是我在强制DI作为Jeffrey Palermo定义的服务方面遇到问题。问题是ASP.NET CORE已经支持嵌入式DI,这很好,很方便,但是现在我完全想要完全不同的愚蠢的东西。因此,如果您遇到相同的情况,请分享!非常感谢。

[UPDATED_1]
谢谢@sellotape的建议,我将对其进行分解。 如上所述,该体系结构定义了每个服务(包括DI)都必须像洋葱层一样无所作为。这意味着DI本身一定不能依赖于框架(这次是ASP.NET CORE内置DI)。
这就是我的全部问题,跟上该体系结构只是一个挑剔的想法。

[UPDATED_2]
假设我的ASP.NET Framework项目结构如下所示:

*Onion.sln                        --(project solution)
 - Core                           --(solution folder)
   + Core.ApplicationServices     --(project)
   + Core.ObjectModels            --(project)
   + Core.ObjectServices
 - Infrastructure
   + Infrastructure.Data
   + Infrastructure.Log
   + Infrastructure.Identity
 - Services
 - Libraries
 - DependencyResolver

如您所见,由于DependencyResolver,我能够将所需的任何项目注入所需的任何项目。这种行为在ASP.NET CORE中似乎是不合法的,因为要执行此类操作,您需要将整个项目引用到另一个项目,因为“内置的DI容器仅是”项目范围”。这意味着,如果我想从彼此之间注入某种东西,那么我会在这两者之间建立紧密的联系,而这并不是依赖注入的目的。

0 个答案:

没有答案