如果我的 BaseUow 已经实现,我的 UoW class 是否需要实现 IDisposable?

Does my UoW class need to implement IDisposable if my BaseUow already implements it?

我为我的工作单元创建了一个名为 BaseUoW 的基础 class,它继承了 IDisposable,如下所示:

public class BaseUoW : IDisposable
{
}

我的问题是...如果我创建 class 继承我的 BaseUoW 的 UserUoW,UserUoW 是否需要实现 IDisposable 或将由我的 BaseUow

处理
public class BaseUoW : IBaseUoW
{
}

public class BaseUoW : IBaseUoW, IDisposable
{
}

IBaseUoW

public interface IBaseUoW
{
    virtual void Dispose(bool disposing);
    void Commit();
}

您不需要将它添加到 class 声明中,除非您想让它显式以提高可读性。

但是,您可能需要添加一个 protected virtual void Dispose(bool disposing){ 方法重写来执行子 class 清理任务(如果有的话)。

有关要遵循的正确模式的详细信息,请参阅 here

编辑: 正如评论中所指出的,这只有在你真正从你的基础 BaseUoW class 扩展的情况下才会发生。因为你的 "pictures" 显示它实现了一些其他接口,而不是扩展你的基础 class 有问题。