从 DI 获得正确的服务

问题描述 投票:0回答:1

我有一个使用 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

获取其中的特定一个
c# dependency-injection service-provider
1个回答
0
投票

不幸的是,你不能这样做,但是如果在某些场景下你需要同时使用它们,你可以使用反射来解决这个问题

© www.soinside.com 2019 - 2024. All rights reserved.