В настоящее время я использую следующий код:
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
Поскольку я хочу иметь возможность unit test метода 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?
Каков правильный подход в этом случае? Любое понимание было бы очень полезно.