我的主界面下有两个分支,并尝试在这里使用 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 }
}
但是还有另一个分支从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 时,它总是抛出一个空错误。我在这里错过了什么吗?任何帮助表示赞赏