У меня есть приложение WPF, в котором используется IOC и шаблон корневой композиции с введением конструктора. Большинство параметров в конструкторах View Models являются репозиториями. Некоторые из репозиториев используют Singleton Lifestyle, поскольку они кэшируют материал. Все модели просмотра являются переходными, так как я хочу, чтобы память была выпущена сразу после закрытия представления.Замок Windsor IoC - утечка памяти с помощью ссылок Singleton/Transient
Имея ссылку на одноэлементный репозиторий в транзитных моделях, все же сохраняя их все в памяти после того, как они больше не используются, не позволяя контейнеру IOC освобождать их.
Есть ли шаблон, который я могу выполнить, чтобы освободить классы, когда они больше не используются? Я думал о реализации IDisposable в ViewModels и просто устанавливал ссылки на репозитории на null, но это звучит не так.
Прерыватель, имеющий ссылку на одноэлементный тон, в порядке. Это не вызывает проблемы. У вас должен быть соответствующий Release() для каждого Resolve(), чтобы избежать утечек памяти. –
Согласовано. Я подключился к закрытому событию просмотров и выпустил экземпляр, который ранее решал. – Klaws86