在抽象类中实现IDisposable

时间:2015-07-17 13:33:02

标签: c# asp.net-mvc entity-framework oop

我有以下抽象类,需要实现IDisposable以确保DbContent将被正确处理。

public abstract class DataRepositoryBase<T> : DataRepositoryBase<T, MainDbContext>
    where T : class, IIdentifiableEntity, new()
{

}

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

请注意:我非常了解如何在具体类中使用IDisposable,但在抽象类中实现此功能 - 不是很清楚

1 个答案:

答案 0 :(得分:0)

我会接受这个答案中提供的实现:

Proper use of the IDisposable interface

如果派生类型需要处理东西,记住调用base,派生类型会覆盖Dispose(bool disposing)方法。如果它不需要,那么根本不对基础实现做任何事情。

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

这至少是一个好的开始。