У меня есть дочернее окно со связанной виртуальной машиной, которое создается каждый раз, когда я прошу дочернее окно открыться. когда дочернее окно открывается, оно регистрирует слушателя для легкого сообщения MVVM. После закрытия окна я почти уверен, что освобождаю все ссылки на него, но на самом деле я не вызываю dispose, потому что он не реализует IDisposeable.
Когда я создаю другое дочернее окно того же типа и отправляю ему другой контекст, я знаю, что получаю сообщение из предыдущего экземпляра виртуальной машины ... каждый раз, когда я использую окно, все больше и больше ВМ слушает, и код повторяется.
Как я могу быть уверен, что моя предыдущая виртуальная машина, которая зарегистрировалась для прослушивания сообщения, действительно была освобождена и больше не активна. Есть ли детерминированный способ сделать это?