对于具有必须释放的内部数据结构的用户控件,将该代码添加到 .designer.cs 文件中的 Dispose 方法的正确位置是否正确,或者是否有一个事件或我们打算使用的东西?
编辑:这是一个 winforms 用户控件。
对于具有必须释放的内部数据结构的用户控件,将该代码添加到 .designer.cs 文件中的 Dispose 方法的正确位置是否正确,或者是否有一个事件或我们打算使用的东西?
编辑:这是一个 winforms 用户控件。
如果您在谈论 WinForms,我通常采用两种方法之一来解决此问题。
方法一
打开 Form.Designer.cs 文件。在生成的 dispose 方法中,我添加了对 DisposeCore 的调用。然后我返回到 Form.cs 并添加一个 DisposeCore 方法,该方法现在将在 dispose 期间调用。我将所有处置逻辑添加到此方法中。
技术上不支持编辑设计器文件。但是我发现当设计器重新生成代码时,这个特定的编辑不会被冲走。
方法二
将事件处理程序添加到 Form.Disposed 并在处理程序中执行我的处置逻辑。这是更可取的方式,因为它是受支持的操作,并且不会受到您尚未遇到的某些设计器世代的影响。
你能澄清一下什么样的控制吗?ASP.NET,WinForms?
在 ASP.NET 中,您可以:
protected override void OnUnload(EventArgs e){
base.OnUnload(e);
//Unload here...
}
或者,您可以将其剪切并粘贴到主 .cs 文件中。该代码不在“#region 组件设计器生成的代码”中,因此 Studio 不会错过它。