我已经成功地在我的Web应用程序中使用Ninject,通过将我的Global类派生自NinjectHttpApplication
并在我的web.config中使用NinjectHttpModule
现在我想在我的一个类库中使用DI,但我不知道该如何操作。我有以下虚拟类:
/// <summary>
/// Testing Ninject DI in a class library
/// </summary>
public class Class1
{
[Inject]
ICustomerRepository CustomerRepository { get; set; }
public string SomeText { get; set; }
public Class1(string text)
{
MyConfig config = new MyConfig();
config.Configure();
SomeText = text;
}
public Customer GetCustomer()
{
var customer = CustomerRepository.GetCustomer();
return customer;
}
}
public class MyConfig
{
public IKernel Configure()
{
IKernel kernel = new StandardKernel(new NinjectRepositoryModule());
return kernel;
}
}
当我实例化
Class1
并调用GetCustomer()
时,CustomerRepository
为空,所以我显然做错了什么。另外,如果我使用构造函数注入,并且我的构造函数如下:
public Class1([Inject] ICustomerRepository repository)
我该如何实例化Class1
?
对Ninject还比较新,所以这可能很容易。