簡體   English   中英

擴展Ninject綁定方法

[英]Extend Ninject Bind method

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的新功能和更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM