如何使用Ninject(MVC3 Web应用程序)在构造函数中设置属性或变量?

时间:2011-05-25 12:37:21

标签: c# asp.net-mvc ninject

我有接口ITest和类Test,它实现了ITest:

public Test : ITest{...}

我有这样的课程:

public class MyClass
{
 ITest test;
 public MyClass(){...}
}

有没有办法在Ninjection的测试变量中设置新的Test()示例?我想在构造函数中删除这段代码:

public MyClass()
{
 test = new Test();
}

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议你使用构造函数注入,例如:

public class MyClass {
    private readonly ITest _test;

    [Inject]
    public MyClass(ITest test) {
        _test = test;
    }
}

这提供了类依赖关系的可见性,即MyClass依赖于ITest的实例。只要您在容器中注册ITest实例,Ninject就会自动为您处理此依赖注入。

或者,您可以使用属性/字段注入:

public class MyClass {
    public MyClass() { }

    [Inject]
    public ITest Test { get; set; }
}

public class MyClass {
    [Inject] private ITest _test;

    public MyClass() { }
}