小编the*_*spy的帖子

Ninject特定于构造函数的代码顺序

更新

我设法解决了这个问题.现在我检查自己,是否可以解决依赖关系.如果没有,我将寻找一个无参数构造函数(通过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不要忽略无参数构造函数,如果它不是第一个?

先感谢您.

c# ninject

3
推荐指数
1
解决办法
657
查看次数

标签 统计

c# ×1

ninject ×1