我有一个像这样的界面:public interface IService<T> { void DoSomething(T obj) } 以及几种实现:public class ServiceA : IService<A>{ public void DoSomething(A a) } public class ServiceB : IService<B> { public void DoSomething(B b) }如何注入IService<T>在消费类的构造函数中实现的所有实例?
1 回答
慕仙森
TA贡献1827条经验 获得超7个赞
您将需要注入IServiceProvider
到您的使用者中,然后使用一种解决方法,例如serviceProvider.GetRequiredService<IService<T>>()
解决已注册的通用服务。
它违反了某种形式的DI原理,但是是在方法内部获取正确实现的方法。否则,您将必须创建一个完整的类(Consumer<T>
),该类已在工厂进行了类似的设置调用的工厂注册Consumer<T>
。
- 1 回答
- 0 关注
- 164 浏览
添加回答
举报
0/150
提交
取消