首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET核心依赖项注入-多个项目

.NET核心依赖项注入-多个项目
EN

Stack Overflow用户
提问于 2017-03-03 05:56:44
回答 1查看 3.9K关注 0票数 3

我的项目组如下:

1)共享类库

  • 模型
  • 实体框架类(DB上下文等)

2) Web

  • 使用(1)中的模型和实体框架类与数据库通信。

3)控制台应用程序

  • 在(1)中创建模型实例,并使用实体框架类将它们保存到数据库中。

我的问题是:

我是否应该创建一个包含控制台应用程序和Web共享的ConfigureServices方法的DI容器类?

或者,每个应用程序负责绑定它们自己的依赖关系更有意义吗?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 06:04:16

国际奥委会注册

这取决于应用程序的性质,但总的来说,我要说的是,您希望将其分开,并将其包含在任何一个应用程序中。两个应用程序中相同的内容不需要抽象和ioc注册(不要使不需要抽象的事物变得抽象)。

也就是说,您可以看到microsft使用扩展方法模式同时添加多个请求,比如:services.AddMvc()是一个扩展方法,用于添加大约20个ioc注册。您也可以在共享库中这样做。只需在启动类中添加services.AddSharedLibrary()

代码语言:javascript
复制
public static class MyServiceExtensions 
{
     public static IServiceCollection AddMyLibrary(this IServiceCOllection services)
     {
         services.Add<Interface1,Implemenetation1>();
         services.Add<Interface2,Implemenetation2>();
         return services;
     }
}

启动基类

您还可以为Startup创建一个(抽象)基类。但是这意味着您的共享库现在需要依赖于HttpBuilder/Kestrel包。如果您在哪里创建一个Servicebus队列侦听器,这将是很奇怪的。

创建启动基类的一个好理由是:如果您希望所有启动项目都有相同的方式和顺序来构建应用程序设置和/或希望它们使用与IOptions配置相同的应用程序设置。但在这种情况下,我建议为此创建一个单独的共享库,专门用于提供相同的StartupBase和配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42571644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档