隨着Ninject 2.2,有什麼辦法可選擇注入一個屬性?在圖書館,我注入性能管理器如下:可選地注入一個屬性Ninject
[Inject]
public IPerformanceManager PerformanceManager
{
private get; set;
}
但這個庫的多種用途,我不感興趣紋的表現,所以我想這個屬性爲null。如果我根本不聲明IP性能管理器的綁定,我會得到以下錯誤:
Error activating IPerformanceManager No matching bindings are available, and the type is not self-bindable. Activation path: 5) Injection of dependency IPerformanceManager into property PerformanceManager of type PluginDomainManager etc...
好的,公平的。所以不是,我想它綁定到返回NULL的方法:
kernel.Bind<IPerformanceManager>().ToMethod(m => null);
但現在給人的錯誤:
Error activating IPerformanceManager using binding from IPerformanceManager to method Provider returned null. Activation path: 5) Injection of dependency IPerformanceManager into property PerformanceManager of type PluginDomainManager etc...
所以注入的屬性將永遠不會空?我覺得這很令人驚訝。任何想法如何完成可選的注入屬性?
完美,謝謝......在文檔的任何地方都找不到。 – 2011-03-01 22:56:38
是否有可能將綁定標記爲可選,以便不使用可選屬性來裝飾每個位置? – 2011-07-01 11:03:24
@bsnote,綁定不能設置爲可選項 – Vadim 2011-07-04 14:20:24