更新
我设法解决了这个问题.现在我检查自己,是否可以解决依赖关系.如果没有,我将寻找一个无参数构造函数(通过Reflection)并调用它.但我认为这是Ninjects的工作份额...所以更多的是解决方法而不是真正的解决方案.
原始问题
public class Test
{
public Test(INavigationService asd)
{
// rnd stuff
}
public Test()
{
// other rnd stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个Test课程.现在,我想要它的两个实例,由Ninject创建.所以我做了以下事情:
Test test = Kernel.Get<Test>();
Run Code Online (Sandbox Code Playgroud)
并遇到异常:"Ninject.ActivationException:激活INavigationService时出错".
如果我像这样重新排序构造函数
public class Test
{
public Test()
{
// other rnd stuff
}
public Test(INavigationService asd)
{
// rnd stuff
}
}
Run Code Online (Sandbox Code Playgroud)
有用.但我无法确定,我使用Ninject的每个类都有"正确"顺序的构造函数.那么,有没有办法告诉Ninject不要忽略无参数构造函数,如果它不是第一个?
先感谢您.