我的代码部分依赖于同一接口的多个实现,而其他部分依赖于其中一个实现。
我正在注册以下实现:
services.AddSingleton<MyInterface, FirstImplementation>();
services.AddSingleton<MyInterface, SecondImplementation>();
然后在需要时获取两种实现,例如:
var implementations= serviceProvider.GetServices<MyInterface>();
我的问题是当我需要其中之一时,我正在尝试以下返回空值的方法:
var firstImplementation= serviceProvider.GetService<FirstImplementation>();
我当然可以使用:
var implementations= serviceProvider.GetServices<MyInterface>();
foreach (var implementation in implementations)
{
if (typeof(FirstImplementation) == implementation.GetType())
{
FirstImplementation firstImplementation = (FirstImplementation)implementation;
}
}
但我想我可以FirstImplementation 以某种方式直接得到我的。
慕莱坞森
相关分类