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.

È stato utile?

Soluzione

Sembra che so già come fare questo - urla:)

Ninject - come e quando iniettare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top