Я написал класс, который наследует DbConnection, и я не понимаю, почему он работает так, как он.Зачем мне нужно реализовать IDisposable() для дочернего класса
Сначала я имел это:
public class DatabaseConnection : DbConnection
{
...
public override void Close()
{
// Some stuff
}
// No Dispose method
}
using(var db = new DatabaseConnection())
{
// Some processing
}
Метод Close() не был вызван, и мы могли видеть соединения оставаться на сервере MySQL.
Теперь у меня есть это, и работает (это действительно закрывает соединение, а сервер ОК):
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 уже существует –