Что происходит с использованием оператора, когда я перехожу к внедрению зависимости

В настоящее время я использую следующий код:

public class MyProvider
{
    public MyProvider()
    {
    }

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

Потому что я хочу иметь возможность модульного тестирования метода Fetch и из-за того, что я могуДля насмешки над PopClient я создал интерфейс и класс-обертку, который вызывает PopClient. Мой обновленный код выглядит так:

public class MyProvider
{
    private readonly IPopClient popClient;

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

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

Я использую Ninject для внедрения зависимостей, и я не совсем уверен, какой эффект будет иметь оператор using в обновленном коде, поскольку Ninject уже создал экземпляр PopClient и внедрил его в конструктор.

Будет ли оператор using избавляться от объекта pop3 и оставлять объект popClient в покое, чтобы Ninject мог с ним справиться, или оператор using мешает Ninject?

Каков правильный подход в этом случае? Любое понимание было бы очень полезно.

Ответы на вопрос(2)

Ваш ответ на вопрос