我有一个使用 C# 和 .NET 6 的课程:
public class MyClass()
{
private IMyInterface _myInterface;
public MyClass(IMyInterface interfaceInstance)
{
_myInterface = interfaceInstance;
}
...
}
我有 2 个不同的类实现了
IMyInterface
,称为 ClassA
和 ClassB
。
我希望能够创建两次 DI - 一次用于
MyClass
,它接收 ClassA
作为 ctr 中的实例,一次用于 ClassB
:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<MyClass>(sp => new MyClass(new ClassA()));
services.AddSingleton<MyClass>(sp => new MyClass(new ClassB()));
}
问题是我不知道如何稍后使用
ServiceProvider
获取其中的特定一个
不幸的是,你不能这样做,但是如果在某些场景下你需要同时使用它们,你可以使用反射来解决这个问题