Как лучше всего реализовать IDisposable в Winform?
В идеале я мог бы подключиться к переопределению Dispos (bool) в сгенерированном коде, чтобы удалить добавленный вручную объект IDisposable. Есть рекомендации, как это сделать правильно?
Спасибо.
Скотт





Но тогда ваше поле должно быть Component (реализовать интерфейс IComponent или что-то подобное). Разве это не было бы небольшим перебором?
Может быть, вы можете прикрепить обработчик событий к событию Disposing и разместить свои поля в этом обработчике событий?
(Или просто добавьте их в метод Dispose - я не думаю, что это будет проблемой, поскольку afaik, код в методе Dispose не восстанавливается ... В идеале реализация метода Dispose не должна находиться в классе * .designer.cs ...).
Вы можете переместить эту реализацию Dispose из .designer.cs в свой .cs.
Я отменяю регистрацию любых событий в методе Dispose, найденном в файле Designer.cs формы.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
_frmFind.RaiseFindEvent -= _frmFind_RaiseFindEvent;
base.Dispose(disposing);
}
Так просто :) Я не думал, что дизайнер с этим справится.