dependency-injection - .net 核心中的依赖注入(inject),Autofac、StructureMap 和工厂方法,如果注册了多个实现,则解析接口(interface)

标签 dependency-injection asp.net-core .net-core asp.net-core-2.0

在我的项目中,我使用了责任链设计模式,我需要为此创建多个实现相同接口(interface)的处理程序。在 .net 应用程序(不是 .net 核心)中,我会使用 UnityContainer 使用 DI,我可以使用命名参数解析处理程序。但在.net core 中我不能这样做。现在我几乎没有选择使用其他 DI 库,如 Autofac、Structuremap 或创建工厂方法,它可以根据传递的名称为我提供对象。请帮助我在这些之间选择正确的方法或建议更好的方法(如果有的话)。我没有使用过 Autofac 或 Structuremap,所以我几乎没有相同的想法。谢谢。

最佳答案

在大多数情况下,所有 DI 工具都使用不同的 API 实现相同的目标。这些天来,您的需求突出了差异。

StructureMap 或 Autofac 都是不错的选择。这一切都归结为“味道”。

检查这篇文章。我认为是一个很好的。 Configuration comparison dependency injection containers

同样,除非您需要其中一个非常非常具体的功能,否则不要对它们感到压力。

我会做 Autofac 只是因为我不需要其他东西,但是,我会毫不犹豫地使用 StructureMap、Ninject 或任何新的 child 。

关于dependency-injection - .net 核心中的依赖注入(inject),Autofac、StructureMap 和工厂方法,如果注册了多个实现,则解析接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47766964/

相关文章:

azure - 是否可以在本地使用 SSL 运行 Azure Function 应用程序?

c# - 如何在 .NET Core MVC Controller 之外进行缓存和依赖注入(inject)

asp.net-mvc - 使用 Ninject 和 MVC 对服务层的依赖

c# - 如何正确使用依赖注入(inject)?

c# - Azure 服务启动日志

linux - 在 Linux 上连接到本地 PostgreSQL 服务器

c# - 如何注册一个参数为 `Func<>` 的类?

c# - Azure 函数中的验证过滤器

c# - ASP.Net Core 客户端验证 : is there a "validation succeeded" DOM event?

c# - 无法让控制台日志记录在 .net core 2.0 中工作