0
我在我的主接口 下有兩個分支,並嘗試在此處使用Ninject IOC根據某些矛盾動態加載適當的類。這是我的我的類結構和問題的說明我Ninject在使用StandardKernel.Get()時變爲空。()
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時,它總是拋出一個空錯誤。我在這裏錯過了什麼嗎?任何幫助表示讚賞
什麼是 '零錯誤'?你可能會更好地描述你所得到的例外。 – mipe34
包含確切的異常消息,異常類型和堆棧跟蹤。 – Steven
當我使用手錶時,我看到: 值不能爲空。參數名稱:source – user2730657