2016-05-10 89 views
0

我是Ninject的新手。使用自定義參數,我們已經看到了構造函數注入可以通過使用使用方法注入注入自定義參數

Bind<>().To<>().WithConstructorArguments("Name","Value") 

後來覺得做,嘗試方法注入的樣品中包含如下一些自定義的參數:

[Inject] 
public void DoSomething(int a,string data,double b, etc...) 
{ 

} 

但是,我得到了隱藏在如何通過數據,對這些論點..

我已經檢查了intellisense和看到的功能,WithConstructorArgument,WithPropertyValue,所以我相信應該/可能是一個選項來實現這一個..

我可否知道,如何解決這個案子。

在此先感謝。

回答

1

你不能像這樣使用方法注入。你能做什麼,但是,是使用OnActivation擴展,如:

Bind<>().To<>() 
    .OnActivation(x => x.DoSomething(5, "hello world", 3.5,...);  

它被執行後ninject調用構造函數和執行財產/方法注入。每個實例只有一次。實際上,這應該只是你想要的。