Attualmente sto usando il seguente codice:Cosa succede ad usare economico quando mi trasferisco in Dependency Injection
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
Perché voglio essere in grado di unit test del metodo Fetch e per il fatto che posso' t mock PopClient, ho creato un'interfaccia e una classe wrapper che chiama in PopClient. Il mio codice aggiornato si presenta come:
public class MyProvider
{
private readonly IPopClient popClient;
public MyProvider(IPopClient popClient)
{
this.popClient = popClient;
}
public void Fetch()
{
using (var pop3 = popClient)
{
....
}
}
}
Sto usando Ninject per l'iniezione di dipendenza e io non sono del tutto sicuro che tipo di effetto l'istruzione using avrà nel codice aggiornato dal Ninject già creata un'istanza popclient e iniettò nel costruttore.
L'istruzione using eliminerà l'oggetto pop3 e lascerà l'oggetto popClient da solo in modo che Ninject possa gestirlo o l'istruzione using interferirà con Ninject?
Qual è l'approccio corretto in questo caso? Qualsiasi intuizione sarebbe molto utile.
Se si dispone di popClient, cosa succede all'oggetto MyProvider?! Non dovrebbe essere disposto anche ?! Perché è rimasto un solo membro readonly disposto nella classe. Se è così, penso che sia meglio mettere un metodo di dispose per la classe MyProvider. –