Приложение аварийного снимка dotmemory
Resharper Ultimate: 2016.3.2 DotMemory: 2016.3.2 Visual studio 2017 Windows 7 Prism 6.3.0 Ninject
Это немного странно, поэтому я не уверен, как именно это описать, но я попробую.
Первоначально у меня были страницы, настроенные для регистрации в их регионах, поэтому все мои страницы были объявлены следующим образом
_kernel.Bind<IPageView, PageView>().To<PageView>();
с последующей привязкой их к региону.
_regionManager.RegisterViewWithRegion(RegionNames.ContentRegion, typeof(PageView));
При обновлении я решил, что вместо того, чтобы связывать страницы и регистрировать их с регионом, я переключился на использование RequestNavigate, поэтому я удалил регистрацию представления с регионом и изменил привязку на
_kernel.RegisterTypeForNavigation<PageView>( PageNames.MyPage);
В режиме отладки все это прекрасно работало. Однако здесь все становится странным. Я запустил dotmemory, чтобы провести некоторое тестирование на утечку, и обнаружил, что если я сделаю снимок перед тем, как войти на определенные страницы, программное обеспечение вылетит. Если я не сделал снимок или сделал снимок после входа на страницу, ничего не происходит.
Кроме того, если я добавлю
_kernel.get<PageView>();
после привязки страницы у меня тоже проблем нет. (так что сейчас это мое ужасное временное исправление)
Мне просто интересно, есть ли у кого-нибудь идея, почему это может происходить. Единственные два вывода, которые я сделал, это либо
a) RequestNavigate не разрешается через нинъект правильно. б) Каким-то образом получение снимка из dotmemory приводит к очистке всего, что еще не было разрешено из ядра.
Я не ожидаю многого, но если у кого-то есть какие-либо идеи, что может быть причиной этого, это поможет немало.