3

Ninjectでどうすればいいですか

var lst=new List<IAnimal>();
lst.Add(dog);
lst.Add(cat);

kernel.Bind<List<IAnimal>>().ToInstance(lst); 

ToInstance()Ninject にはこのメソッドがないので、代わりに何を使用しますか?

4

1 に答える 1

7

あなたが使用できるように見えますToConstant()

kernel.Bind<List<IAnimal>>().ToConstant(lst);

IList<IAnimal>ではなくバインディングを検討したいかもしれませんがList<IAnimal>

編集:以下のコメントごと

ToMethod要件に応じて、別のオプションがあります。これにより、外部要因に基づいて異なるインスタンスを返すことができる Factory アプローチを使用できます。例えば:

kernel.Bind<IList<IAnimal>>().ToMethod(c => Helpers.IsDark ? return _nocturnalAnimals : return _allAnimals);
于 2013-07-25T05:13:33.193 に答える