Actualmente estoy usando el siguiente código:¿Qué ocurre con el uso de la declaración cuando me traslado a la inyección de dependencias
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
Porque yo quiero ser capaz de probar la unidad del método de Fetch y debido al hecho de que lo que pueda' Para simular PopClient, creé una interfaz y una clase contenedora que llama a PopClient. Mi código actualizado es así:
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 dependencias y no estoy muy seguro de qué tipo de efecto de la instrucción using tendrá en el código actualizado desde Ninject ya se crea una instancia de popclient y la inyectó en el constructor
¿La instrucción using descartará el objeto pop3 y dejará el objeto popClient solo para que Ninject pueda manejarlo o la sentencia using interferirá con Ninject?
¿Cuál es el enfoque adecuado en este caso? Cualquier idea sería muy útil.
Si dispone de popClient, ¿qué ocurre con el objeto MyProvider? ¿No debería eliminarse también? Porque queda un solo miembro de readonly dispuesto en la clase. Si es así, creo que es mejor poner un método de disposición para la clase MyProvider. –