¿Qué pasa con el uso de la declaración cuando me muevo a la inyección de dependencia
Actualmente estoy usando el siguiente código:
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
Debido a que quiero poder probar de forma unitaria el método Fetch y debido al hecho de que no puedo burlarme de PopClient, creé una interfaz y una clase contenedora que llama a PopClient. Mi código actualizado se ve como:
public class MyProvider
{
private readonly IPopClient popClient;
public MyProvider(IPopClient popClient)
{
this.popClient = popClient;
}
public void Fetch()
{
using (var pop3 = popClient)
{
....
}
}
}
Estoy usando Ninject para la inyección de dependencia y no estoy muy seguro de qué tipo de efecto tendrá la declaración de uso en el código actualizado ya que Ninject ya creó una instancia de PopClient y la inyectó en el constructor.
¿Desechará la declaración de uso del objeto pop3 y dejará solo el objeto popClient para que Ninject pueda manejarlo o la declaración de uso interferirá con Ninject?
¿Cuál es el enfoque adecuado en este caso? Cualquier visión sería muy útil.