Dispose on user controls, really meant to edit the .designer.cs file?

前端 未结 3 860
情深已故
情深已故 2021-01-20 08:14

For a user control with internal data structures that must be disposed, is the correct place to add that code to the Dispose method in the .designer.cs file, or is there an

3条回答
  •  隐瞒了意图╮
    2021-01-20 08:44

    If you're talking about WinForms I usually take one of two approaches to solve this problem.

    Approach 1

    Open the Form.Designer.cs file. Inside the generated dispose method I add a call to DisposeCore. I then go back to Form.cs and add a DisposeCore method that will now be called during dispose. I add all of my dispose logic into this method.

    Editing the designer file is technically not supported. However I've found that this particular edit will not be washed away when the designer regenerates code.

    Approach 2

    Add a event handler to Form.Disposed and do my dispose logic in the handler. This is the preferable way because it's a supported operation and won't be affected by some designer generation you have yet to encounter.

提交回复
热议问题