2
我使用Ninject模塊將不同類型綁定到它們相應的接口。在Ninject上使用Func創建構造函數
注入將採取一個類的構造函數裏面的地方。問題是這個類有另一個帶有包含Func的簽名的構造函數。
Ninject是迷茫,拋出這個我:
錯誤使用隱式的自我約束力ClassTest的激活ClassTest。幾個構造函數具有相同的優先級。請使用ToConstructor語法指定構造函數或添加Inject屬性。
請參見下面的結合是怎麼做的,我該怎麼辦注射:
this.Bind<InterfaceA>().To<ClassA>();
...
public class ClassTest
{
public ClassTest(InterfaceA a)
{
}
public ClassTest(Func<ClassB> funcB)
{
}
}
...
var giveMeTest = kernel.Get<ClassTest>(); // exception thrown
}
看來,Func鍵是罪魁禍首在這裏,你能解釋一下我爲什麼Ninject就會犯糊塗?
感謝