¿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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta