【发布时间】:2020-04-25 03:56:46
【问题描述】:
我正在使用带有内置 DI 的 Asp .net core 2.2。我想注入具有多个满足容器条件的构造函数的服务。而且我无法删除其他构造函数以实现向后兼容性。示例代码:
public interface IService{
void DoSomthing();
}
public class Implementation : IService
{
public Implementation(IService1 service1)
{
}
public Implementation(IService1 service1, IService2 service2)
{
}
public void DoSomthing()
{
// Do something
}
}
我在 DI 容器示例中注册了所有这些服务:
services.AddScoped<IService, Implementation>();
现在我有了另一个使用 IService 作为 DI 的类:
public class ClassA : IService
{
public ClassA(IService service)
{
}
}
依赖注入容器如何使用哪个构造函数初始化这个类?:
public Implementation(IService1 service1)
Or
public Implementation(IService1 service1, IService2 service2)
它们之间的选择规则是什么?
【问题讨论】:
标签: c# .net asp.net-core dependency-injection