【问题标题】:ASP.NET Core: dependency injection — analogue of autofac modulesASP.NET Core:依赖注入——类似于 autofac 模块
【发布时间】:2020-01-06 08:07:59
【问题描述】:

我正在配置 DI 容器,以便能够解析我的应用程序中的多个服务。
如果我使用 autofac,我会使用那里的模块在逻辑上捆绑注册。
ASP.NET 核心框架是否有模块的类似物?如果我愿意,我该如何实现?

Official doc on DI 说: 这是否意味着我不应该再寻找模块系统了? 如果我有 20-50 个服务,最好为每个单独的服务创建一个扩展?

【问题讨论】:

  • 我认为它是说为相关服务组创建扩展方法,例如 AddMvc() 添加一组与 MVC 相关的服务......我的意思是,它说,“......封装服务注册。”
  • @HereticMonkey,感谢您提供的信息。可能我误解了那句话的意思。猜你是对的,我应该将相关服务隐藏在一个扩展名下。你能把它作为答案吗?
  • 不,Microsoft.Extensions.DependencyInjection 是故意简单化的。但是,如果您想使用 Autofac,没有什么能阻止您。 docs.autofac.org/en/v4.0.0/integration/aspnetcore.html
  • @ChrisPratt,感谢您提供的信息,它很有用。我不认为在一个应用程序中混合两个 DI 框架是一个好主意,特别是为了模块而添加 autofac,所以我想迁移核心框架的所有功能。
  • 从技术上讲,它并没有使用两个 DI 框架。 Microsoft.Extensions.DependencyInjection 充当具有默认和简单提供程序的外观。当你插入 Autofac 之类的东西时,它会作为提供者接管,而你所使用的只是外观层。

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


【解决方案1】:

AFAIK 在核心 DI 实现中没有任何东西可以与 autofac 的模块注册相媲美。 您必须自己实现它,这应该没什么大不了的。

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 2011-06-02
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多