Ezi*_*nze 1 c# architecture dependency-injection n-tier-architecture .net-core
我已经在.net core(控制台应用程序)中创建了这样的n层体系结构:
Company.App
-> reference to Company.Services
-> reference to Company.Infrastructure
Company.Services
-> reference to Company.Infrastructure
+ IWorkStarter
+ WorkStarter - (ExternalClient is injected)
Company.Infrastructure
+ RabbitMqConsumer - (IWorkStarter must be injected) - Cyclic dependency
+ IExternalClient
Run Code Online (Sandbox Code Playgroud)
如您所见,Services
已经有对的引用Infrastructure
。而且我也必须IWorkStarter
在兔子用户内部使用。似乎我没有必要的知识来以正确的方式分离这些组件。请你帮助我好吗?该项目非常简单。
按照设计,我经常在带有ASP.NET Core的Clean Architecture(洋葱架构)中看到。
查看以下内容
Company.App
-> reference to Company.Services
-> reference to Company.Infrastructure
-> reference to Company.Core
+ Compsition Root maps everything
Company.Services
-> reference to Company.Infrastructure
-> reference to Company.Core
+ WorkStarter - (ExternalClient is injected)
Company.Infrastructure
-> reference to Company.Core
+ RabbitMqConsumer - (IWorkStarter must be injected)
Company.Core
+ IWorkStarter
+ IExternalClient
Run Code Online (Sandbox Code Playgroud)
将抽象移出自己的关注
以下参考资料库提供了一个很好的示例
https://github.com/ardalis/CleanArchitecture
核心项目
核心项目是Clean Architecture设计的中心,所有其他项目依赖项都应指向该项目。这样,它几乎没有外部依赖性。
归档时间: |
|
查看次数: |
62 次 |
最近记录: |