マスター インターフェイスの下に 2 つのブランチがあり、ここで Ninject IOC を使用して、条件に基づいて適切なクラスを動的にロードしようとしています。これが私のクラス構造と私が抱えている問題の説明です
Interface I
{
Void method1 ();
Void method2 ();
Void method3 ();
}
Abstract class A : I
{
Abstract void method1 ();
Abstract void method2 ();
Void Method3() { //Some implementation can be shared by all classes }
}
支店 1
Abstract Class B : A
{
void method1 () { //Some implementation can be shared by B1, B2 }
}
B1 と B2 は branch1 の最下位レベルのクラスで、コードで使用されます。
Class B1 : B
{
Void Method2() { //Some implementation }
}
Class B2 : B
{
Void Method2() { //Some implementation }
}
しかし、次のように、Abstract クラス A の住民から始まる別のブランチがあります。
ブランチ 2
Abstract Class C : A
{
void method1 ()
{
//Some implementation which is different from in B.Method1
//and can be shared by C1
}
}
C1 は branch2 の最下位レベルのクラスで、コードで使用されます
Class C1 : C
{
Void Method2() { //Some implementation }
}
以下のように、Ninject を使用してクラスを動的にバインドおよびロードします。
Bind<I>().To<B1>();
Bind<I>().To<B2>();
Bind<I>().To<C1>();
そして、使用するようにそれらを取得しますkernel.Get<I>();
問題は、B1 と B2 が正常に返されることですが、C1 を取得すると、常に null エラーがスローされます。ここで何か不足していますか?どんな助けでも大歓迎です