グローバルをweb.configから派生させて使用することで、Web アプリケーションで Ninject を正常に使用していますNinjectHttpApplication
。NinjectHttpModule
私が今やりたいことは、私のクラス ライブラリの 1 つで 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
が null になるため、明らかに何か間違ったことをしています。
また、コンストラクター注入を使用し、コンストラクターを次のようにすると、
public Class1([Inject] ICustomerRepository repository)
どうすればインスタンス化できますClass1
か?
Ninject はまったく新しいので、これはすべて非常に簡単なことです。