【发布时间】:2017-04-21 10:30:53
【问题描述】:
我有一个 ASP.NET Core 项目(我的第一个),它需要两个内部“序列器”来执行特定任务。第一个是这样实现的:
在 Startup.cs 的 ConfigureServices 方法中:
services.AddSingleton<ISequencer, ProfileSequencer>();
当然,我已经定义了接口和实现,并且运行良好。但是我不确定如何添加第二个音序器,它实现了相同的接口,但实现方式略有不同。
services.AddSingleton<ISequencer, ChargeSequencer>();
ASP.NET 并没有抱怨这一点,但是现在当我将 ISequencer 注入到我的类中时,我无法想象它是如何知道要使用哪个单例的。我怀疑(但不确定)第二个单例有效地取代了第一个。
这里可能存在一些错误的设计决定,因此我将接受一个描述如何注入两个实现相同接口的不同单例的答案,或者如果需要另一种合理的方法来解决这个问题。谢谢!
【问题讨论】:
-
感谢您的链接 - 我同意这本质上是重复的。因为我找到了针对不同服务类型的其他解决方案,所以我对单例实现的搜索词很感兴趣。
标签: c# asp.net dependency-injection asp.net-core