c# - 扩展 Ninject Bind 方法
问题描述
Ninject 有这个方法。
public IBindingToSyntax<T1, T2, T3, T4> Bind<T1, T2, T3, T4>()
是否有可能以某种方式扩展此方法以将 5 个接口绑定到一个实现?
像这样:
public IBindingToSyntax<T1, T2, T3, T4, T5> Bind<T1, T2, T3, T4, T5>()
解决方案
Ninject 提供了一种流畅的语法,允许您将最多 4 个接口绑定到同一个实例:
Bind<IInterface1, IInterface2, IInterface3, IInterface4>().To<Implementation>();
如果我们需要更多接口,有一个解决方法:
var bindingConfiguration =
Bind<IInterface1, IInterface2, IInterface3, IInterface4>()
.To<Implementation>()
.BindingConfiguration;
kernel.AddBinding(new Binding(typeof(IInterface5), bindingConfiguration));
下面我贴出作者的一句话,为什么只有四个接口?
有人可能会问,如果我想将四个以上的接口绑定到同一个服务,该怎么办。在一次小型讨论中,我们得出的结论是,如果您在单个服务上有四个以上的接口,那么您很可能会遇到单一责任原则的问题,应该首先解决这个问题。
链接到文章Ninject 3.0 的新功能和变化
推荐阅读
- javascript - 将所有相对路径替换为绝对路径,并使用正则表达式忽略已经是绝对路径
- javascript - Jquery:获取索引小于当前单击星的星
- python - 如何在 PyCharm 中进行智能评论?
- swagger - 禁用默认响应按摩 SpringDoc Open API 3
- reactjs - 即使 Image uri 在本机反应中为真,为什么每次调用都会出现 onError ?
- charts - 更改 PhpWord 图表中的字体样式
- mysql - 在 Laravel 中存储 32 位二进制文件的正确方法
- javascript - 角度选择和的 NaN 总值
- java - 使用@Slf4j 注解创建时如何模拟 Logger?
- alert - 添加 2 个类似 Counter 指标的值