2016-05-10 13 views
0

Ich bin ein Neuling für Ninject. Ich habe mit benutzerdefinierten Argumenten gesehen Constructor Injektion kann mitInjizieren von benutzerdefinierten Argumenten mit Methodeninjektion

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

Dann ich dachte getan werden, versuchen, eine Probe von Method Injection mit einigen benutzerdefinierten Argumenten wie wie folgt:

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

} 

Aber, ich habe versteckt auf, wie die Daten auf diese Argumente zu übergeben, ..

ich überprüft haben, die Intellisense und gesehen Funktionen wie, WithConstructorArgument, WithPropertyValue und so glaubte ich, es sollte/eine Option sein kann, dieses zu erreichen ..

Darf ich wissen, wie man diesen Fall löst.

Vielen Dank im Voraus.

Antwort

1

Sie können Methodeninjektion nicht so verwenden. Was Sie tun können, ist jedoch die OnActivation Erweiterung verwenden wie:

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

Es ausgeführt nachdem ninject die Ctor Anrufe und Eigenschaft/Methode Injektion durchzuführen. Also genau einmal pro Instanz. Effektiv sollte dies genau das sein, wonach Sie suchen.