C# 如何使用Ninject(MVC3 web应用程序)在构造函数中设置属性或变量?
我有接口ITest和类Test,它们实现了ITest:C# 如何使用Ninject(MVC3 web应用程序)在构造函数中设置属性或变量?,c#,asp.net-mvc,ninject,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(); } 谢谢 我建议您使用构造函数注入,例如: public class M
public Test : ITest{...}
我有这样的课:
public class MyClass
{
ITest test;
public MyClass(){...}
}
有没有办法用Ninjection在测试变量中设置新的Test()示例?我想在构造函数中删除此代码:
public MyClass()
{
test = new Test();
}
谢谢 我建议您使用构造函数注入,例如:
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() { }
}
你能解释第二个例子吗?我试过了,但在我的应用程序中不起作用。我想在属性中设置Test()的示例,但属性值始终为null。