5
コンストラクタ引数の一部としてNinjectバインディングのメソッドを指す必要があります。クラスのコンストラクタは次のようになります。WithConstructorArgumentへのNinject Passの代理人
MyObject(Func<Populator> param1, TimeSpan time)
は、私が探してきたとのFuncのデリゲートをバインドする方法を見つけることができませんでした。これも可能ですか? Ninjectは、引数としてオブジェクトを期待しているため、代理人を取得しないため、これを行わないようにします。
Bind<IInterface>()
.To<MyObject>()
.InSingletonScope()
.WithConstructorArgument
("param1", ctx => ctx.Kernel.Get<OtherWiredObject>().PopMethod)
.WithConstructorArgument
("time", new TimeSpan(0,30,0));
Ninjectでこの動作を有効にする方法はありますか?
を。 '()=> Kernel.Get()。PopMethod'を実行したらどうなりますか? –
dotjoe
'()=> Kernel.Get()。PopMethod' WithConstructorArgumentメソッドのシグネチャを見ると、Funcはオブジェクトが返されることを期待しています。パラメータ。おそらくこれのまわりに別の方法がありますか? –
は 'PopMethod'は' Populator'型のプロパティですか? – dotjoe