关于c#:在抽象类中实现IDisposable

Implement IDisposable in abstract class

本问题已经有最佳答案,请猛点这里访问。

我有以下抽象类,需要实现IDisposable以确保始终正确地释放dbContent。

1
2
3
4
5
public abstract class DataRepositoryBase<T> : DataRepositoryBase<T, MainDbContext>
    where T : class, IIdentifiableEntity, new()
{

}

实现这一目标的最佳方法是什么?

请注意:我非常清楚如何在具体的类中使用IDisposable,但是在抽象类中实现这个功能-不太清楚


我将采用此答案中提供的实现:

正确使用IDisposable接口

在派生类型中,如果派生类型还需要处理一些东西,记住调用base,则重写Dispose(bool disposing)方法。如果不需要,那么只需对基本实现做任何事情。

确保公开这种类型的公共合同上调用Dispose的必要性是有意义的,这可能是泄漏抽象的迹象(尽管并非总是如此)。

这至少是个好的开始。