DI con Ninject in una libreria di classi [duplicato]
-
16-09-2019 - |
Domanda
Questa domanda ha già una risposta qui:
- Ninject - come e quando iniettare 2 risposte
sto usando con successo Ninject nelle mie applicazioni web derivando la mia globale da NinjectHttpApplication
e utilizzando il NinjectHttpModule
nel mio web.config
Quello che voglio fare ora è usare DI in una delle mie librerie di classi e non so come fare per questo. Ho la seguente classe di manichino:
/// <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;
}
}
Quando ho un'istanza di Class1
e call GetCustomer()
, il CustomerRepository
è nullo, quindi sono ovviamente facendo qualcosa di sbagliato.
Inoltre, se uso l'iniezione costruttore e avere il mio costruttore come
public Class1([Inject] ICustomerRepository repository)
Come potrei fare per un'istanza Class1
?
abbastanza nuovo per Ninject, quindi questo potrebbe essere roba molto facile.
Soluzione
Sembra che so già come fare questo - urla:)