如何管理一个WinForms用户控件中的一次性对象
本文关键字:控件 用户 对象 一次性 WinForms 何管理 管理 一个 | 更新日期: 2023-09-27 17:54:36
我想弄清楚我是否可以在UserControl
中管理一次性资源。我已经通过在父表单中管理它来解决它,但它似乎应该是可能的。
我感知的问题是我不能重写Dispose,因为UserControl
实现了它,但它不是虚拟的。
是否有任何方法可以在不将逻辑委托给父表单的情况下解决此问题?
public partial class MyControl : UserControl {
MyContext context;
public void Add(Widget widget) {
if(this.context== null)
this.context= new MyContext();
context.Add(objectToAdd);
}
public void Save() {
if(context!= null)
context.Save();
}
// --> I'd like to override Dispose() so I can call context.Dispose()
// but I can't because UserControl implements it and it is not virtual
}
在这种情况下,我将生成的Dispose方法移动到主文件中并扩展它。Visual Studio尊重这一点。
另一种方法是使用分部方法(c# 3.0)。链接这里:我如何添加Dispose功能到c# UserControl?