Mithilfe von C#'s 'mit' - Anweisung mit einem benutzerdefinierten Objekt-Funktion, Muss ich IDisposable implementieren?

Ich habe eine sqlConnection-manager-Klasse in etwa so:

public class SQLConn {
  public string connStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];

  private SqlConnection sqlConn;

  public SqlConnection Connection()
  {
      sqlConn = new SqlConnection(connStr);

      return sqlConn;
  }

  public void Open()
  {
        sqlConn .Open();
  }
}

Wenn ich eine Funktion mit der 'mit' - Anweisung wie:

var conn = new SQLConn();

using (conn.Connection()) 
{ 
    String query = "Select * from table";
    objSql = new SqlCommand(query, conn.Connection());      

    conn.Open(); 
    DoSomething(); 
}

Macht die using-Anweisung entsorgen Sie die Verbindung automatisch, da conn.Connection() gibt eine SqlConnection-Objekt? Oder muss ich implementieren IDisposable und eine benutzerdefinierte Dispose-Methode auf die SqlConn Klasse?

Ist dies auch eine gute Möglichkeit überhaupt? Ich arbeite mit legacy-code und ich bin nicht in der Lage zu verwenden ein ORM noch aber ist es ein Weg, um dies zu vereinfachen, bestehende Muster zu verwalten/erstellen von SQL-verbindungen?

InformationsquelleAutor zulkamal | 2009-05-27
Schreibe einen Kommentar