Я только что реализовал Clone от ICloneable и понял, что также подписались события из моего исходного экземпляра. Есть ли хороший способ очистить все это?Очистить все подписки на события (Clone linked)
В настоящее время я использую пару этих циклов для каждого события, которое у меня есть, чтобы очистить все.
foreach (var eventhandler in OnIdChanged.GetInvocationList())
{
OnIdChanged -= (ItemEventHandler) eventhandler;
}
foreach (var eventhandler in OnNameChanged.GetInvocationList())
{
...
Это прекрасно работает, но немного загромождает код. В основном беспокоился о том, что событие свисало.
Это сработало, поэтому я отмечаю это как ответ. хотя я рассматриваю рефакторинг после ответа от Randolpho – mattias
@mattias, я только что рассмотрел ваш вопрос, а не последствия вашего решения в своем ответе. То, что предложил Рандольфо, вероятно, лучше. –
все еще помогало в краткосрочной перспективе. благодаря! – mattias