在我的项目中,我使用了责任链设计模式,我需要为此创建多个实现相同接口(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/