Co dzieje się z użyciem instrukcji, gdy przechodzę do wstrzykiwania zależności

Obecnie używam następującego kodu:

public class MyProvider
{
    public MyProvider()
    {
    }

    public void Fetch()
    {
        using (PopClient popClient = new PopClient())
        {
            ....
        }
    }
}

Ponieważ chcę być w stanie przetestować metodę Fetch i ze względu na fakt, że nie mogę wyrecytować PopClient, stworzyłem interfejs i klasę wrappera, która wywołuje PopClient. Mój zaktualizowany kod wygląda następująco:

public class MyProvider
{
    private readonly IPopClient popClient;

    public MyProvider(IPopClient popClient)
    {
        this.popClient = popClient;
    }

    public void Fetch()
    {
        using (var pop3 = popClient)
        {
            ....
        }
    }
}

Używam Ninject do wstrzykiwania zależności i nie jestem całkiem pewien, jaki efekt będzie miała instrukcja using w zaktualizowanym kodzie, ponieważ Ninject już stworzył instancję PopClient i wstrzyknął ją do konstruktora.

Czy instrukcja using usunie obiekt pop3 i pozostawi sam obiekt popClient, aby Ninject mógł go obsłużyć lub czy użycie instrukcji zakłóci działanie Ninject?

Jakie jest właściwe podejście w tym przypadku? Każdy wgląd byłby bardzo pomocny.

questionAnswers(2)

yourAnswerToTheQuestion