私は次のクラスを持っています:
using System;
interface IA { }
class A1 : IA { }
class A2 : IA { }
class B
{
public B(IA a) {}
}
class BProvider : Provider<B>
{
IA _a;
public BProvider(IA a) { _a=a; }
protected override B CreateInstance(IContext context) { return new B(_a); }
}
ninject モジュール Load() コード:
Bind<IA>().To<A1>();
Bind<IA>().To<A2>();
Bind<B>().ToProvider<BProvider>();
メインコード:
kernel.GetAll<IA>(); // works fine
kernel.GetAll<B>(); // I expect to get IEnumerable<B> with two elements, but instead of this I get an error that there are multiple bindings of IA and ninject cannot determine which to use
問題は、最後のステートメントを期待どおりに機能させることができるか、それとも他の方法で機能させることができるかということです。