相关疑难解决方法(0)

如何在Asp.Net Core中注册同一接口的多个实现?

我有来自相同接口的服务

public interface IService { }
public class ServiceA : IService { }
public class ServiceB : IService { } 
public class ServiceC : IService { }
Run Code Online (Sandbox Code Playgroud)

通常,其他IOC容器Unity允许您通过某些Key区分它们来注册具体实现.

在Asp.Net Core中,我如何注册这些服务并在运行时根据某些键解决它?

我没有看到任何通常用于区分具体实现的AddService方法keyname参数.

    public void ConfigureServices(IServiceCollection services)
    {            
         // How do I register services here of the same interface            
    }


    public MyController:Controller
    {
       public void DoSomeThing(string key)
       { 
          // How do get service based on key
       }
    }
Run Code Online (Sandbox Code Playgroud)

工厂模式是唯一的选择吗?

Update1
我已经阅读了这里 …

c# asp.net-core-mvc coreclr asp.net-core

183
推荐指数
21
解决办法
9万
查看次数

标签 统计

asp.net-core ×1

asp.net-core-mvc ×1

c# ×1

coreclr ×1