Właśnie zaimplementowałem Klon z ICloneable i zdałem sobie sprawę, że subskrypcje zdarzeń z mojej instancji źródłowej również zostały zastosowane. Czy istnieje dobry sposób na wyczyszczenie tych wszystkich?Wyczyść wszystkie subskrypcje zdarzeń (Clone Link)
Obecnie używam kilku takich pętli na każde wydarzenie, które muszę wyczyścić.
foreach (var eventhandler in OnIdChanged.GetInvocationList())
{
OnIdChanged -= (ItemEventHandler) eventhandler;
}
foreach (var eventhandler in OnNameChanged.GetInvocationList())
{
...
Działa to dobrze, ale nieco koduje. Głównie zmartwiony, by wydostać się z wydarzenia.
to działało, więc zaznaczam to jako odpowiedź. chociaż rozważam refaktoryzację po odpowiedzi od Randolpho – mattias
@mattias, właśnie rozważałem twoje pytanie, a nie implikację twojego rozwiązania w mojej odpowiedzi. To, co sugerował Randolpho, jest prawdopodobnie lepsze. –
to pomogło na krótką metę. dzięki! – mattias