Одним из решений будет инкапсуляция любых одноразовых типов, которые вы используете в классах, производных от System.ComponentModel.Component
или которые реализуют System.ComponentModel.IComponent
.
Затем вы можете добавить их в IContainer, который создается сгенерированным дизайнером кодом, и они будут расположены вместе с другими компонентами.
1007 * Е.Г. *
class MyDisposableComponent : IComponent
{
... implementation
}
class MyUserControl : UserControl
{
MyDisposableComponent myDisposableComponent;
...
void SomeMethod()
{
myDisposableComponent = new MyDisposableComponent();
components.Add(myDisposableComponent);
// myDisposableComponent will be disposed automatically when the
// IContainer components is disposed by the designer-generated
// Dispose implementation.
}
...
}