der Abhängigkeits bewege ich zur Zeit den folgenden Code verwende:Was Anweisung using passiert, wenn ich Injektion
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
Weil ich die Fetch-Methode und aufgrund der Tatsache, dass ich kann‘, um Unit-Test in der Lage sein wollen t mock PopClient, ich habe eine Schnittstelle und eine Wrapper-Klasse erstellt, die PopClient aufruft. Meine aktualisierten Code wie folgt aussehen:
public class MyProvider
{
private readonly IPopClient popClient;
public MyProvider(IPopClient popClient)
{
this.popClient = popClient;
}
public void Fetch()
{
using (var pop3 = popClient)
{
....
}
}
}
ich Ninject für Dependency Injection verwende und ich bin mir nicht ganz sicher, welche Art von Wirkung der using-Anweisung in dem aktualisierten Code hat seit Ninject bereits eine Instanz von popclient erstellt und injizierte es in den Konstruktor.
Wird die using-Anweisung über das pop3-Objekt verfügen und das popClient-Objekt allein lassen, damit Ninject damit umgehen kann oder wird die using-Anweisung mit Ninject interferieren?
Was ist der richtige Ansatz in diesem Fall? Jede Einsicht wäre sehr hilfreich.
Wenn Sie PopClient disponen, was passiert dann mit dem MyProvider-Objekt? Sollte es nicht auch entsorgt werden? Weil dort nur ein schreibgeschütztes Mitglied in der Klasse übrig bleibt. Wenn es so ist, denke ich, es ist besser, eine dispose-Methode für die MyProvider-Klasse zu verwenden. –