Мы создаем LOB-приложение, используя SL4, PRISM и MVVM.В последнее время я заметил, что мое приложение не освобождает память.Он начинается с 150 МБ и увеличивается до 1 ГБ + очень быстро, если я переключаю ч / б страницы.Наш проект включает в себя 3 модуля, каждый из которых имеет класс Controller (синглтон Unity), который прослушивает события и внедряет представления в соответствующий регион.Так вот, что происходит в этих контроллерах, когда запускается событие для внедрения представления.
var v = Container.resolve<view>()
var vm = Container.resolve<viewmodel>()
v.datacontext = vm;
myregion.addtoregion(v);
, поэтому 100 вызовов для этого представления превысят это 100 раз.А в методе addviewregion я удаляю все существующие представления перед добавлением нового.И, увидев проблему с памятью, я установил для view и viewmodel значение null в методе addviewtoregion для всех видов, которые необходимо удалить.Тем не менее потребление памяти такое же.Объекты Unity ContainerControllled ... (мои контроллеры) содержат ссылки на эти объекты?