如何解决(DI)依赖注入对象链

时间:2019-02-13 06:41:07

标签: c# asp.net-core dependency-injection

我打算开发企业应用程序,并且有许多解决方案问题的项目应该是 1- Webapi项目 2-服务项目 3- DataModel项目

Webapi项目调用services项目和Services项目调用DataModel项目的问题是我必须在Webapi项目中同时添加(Services,DataModel)项目dll,并在

之类的Startup类中添加所有类和接口
public void ConfigureServices(IServiceCollection services) 
{ 
  services.AddTransient<IDocConverterProAuth, DocConverterProAuthentication>(); 
  services.AddTransient<IFileConverter, FileConverter>(); 
  services.AddTransient<IFileConversionService, FileConversionService>(); 
}

但是我有50个项目和数百个班级。我必须在Webapi项目中添加所有引用。我觉得这是不正确的方式,因为仅Webapi项目中不使用DataModel项目,而Services项目仅使用DataModel项目,因此解决Services项目中的依赖关系,请亲切地指导我如何开发我的开发环境

1- Visual Studio Enterprise 2017 2- .net核心2.1 3- C#

1 个答案:

答案 0 :(得分:0)

我很久以前就遇到过这种情况(例如2010年),在这种情况下,我选择的解决方案是扫描程序集以查找所有合同,并为合同实现指定一个唯一的名称,例如:      abc.business.interfaces.dll 并且相应的实现在     abc.business.dll

使用这样的命名法,我能够标识相应接口的实现程序集,然后将其注册到用于DI的容器中。

因此,如果您不想编写每个DI注入,则必须编写这样的实现。 我认为也有一些现成的解决方案可用,但是我没有使用过这种解决方案,因此不推荐使用。