DbConnection을 상속받은 클래스를 작성 했으므로 그 이유를 완전히 이해하지 못합니다.왜 자식 클래스에 IDisposable()을 구현해야합니까?
은 첫째 나는이 있었다 :
public class DatabaseConnection : DbConnection
{
...
public override void Close()
{
// Some stuff
}
// No Dispose method
}
using(var db = new DatabaseConnection())
{
// Some processing
}
닫기() 메소드
가 호출되지 않은, 그리고 우리는 연결이 MySQL 서버에 머물고 볼 수 있었다.지금이 있고, 는가 (정말 연결을 닫고, 서버는 OK입니다) 작동 :
public class DatabaseConnection : DbConnection, IDisposable
{
...
public override void Close()
{
// Some stuff
}
public new void Dispose()
{
Close();
base.Dispose();
GC.SuppressFinalize(this);
}
}
using(var db = new DatabaseConnection())
{
// Some processing
}
이 DbConnection 클래스를 상속하고 닫기를 무시하는 이유() 메소드가 작동하지 않습니까?
Dispose 또는 Close? Dispose 메서드의 내용이 이미 있기 때문에 –