public class ABC
{
public ABC(IEventableInstance dependency)
{
dependency.ANewEvent += MyEventHandler;
}
private void MyEventHandler(object sender, EventArgs e)
{
//Do Stuff
}
}
Скажем, экземпляр ABC - это долгоживущий объект, а моя зависимость - еще более продолжительный объект. Когда нужно очистить экземпляр ABC, у меня есть два варианта.
Один, у меня может быть метод Cleanup (), чтобы отписаться от события ANewEvent, или я мог бы реализовать IDisposable, а в Dispose развернуть событие. Теперь я не могу контролировать, будет ли потребитель вызывать метод dispose или даже метод Cleanup, если я пойду по этому пути.
Должен ли я внедрить Финализатор и отказаться от подписки? Там грязно, но я не хочу, чтобы вокруг висели экземпляры ABC.
Мысли