为了账号安全,请及时绑定邮箱和手机立即绑定

如何注入通用接口的多个实例?

如何注入通用接口的多个实例?

C#
慕桂英4014372 2021-05-02 18:09:10
我有一个像这样的界面: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>


查看完整回答
反对 回复 2021-05-08
  • 1 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信