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就会犯糊涂?
感谢