如果我的 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 有问题。
我为我的工作单元创建了一个名为 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 有问题。