В проекте WPF (с призмой) мы используем Unity
как каркас DI.Как отлаживать разрешение Unity?
Недавно, после того, как мы объединили две большие ветки, мы не смогли запустить наше приложение, у нас было StackOverflowException
. Из-за характера исключения мы не смогли получить его стек вызовов или текущие значения, мы только установили, что проблема исходила из Unity из-за пространства имен.
Мы провели более 5 часов, чтобы найти, были выпуск встречающийся:
упрощенный:
Мы имели 3-4 услуги (A, B, C и D), каждый из которых с реализацией , и в какой-то момент службе A требовалась услуга B, которой требовалась услуга C, которой требовалась услуга D, которой требовалась услуга A). В основном циклическая ссылка.
Мы хотели бы знать, если есть возможность добавить некоторые журналы, которые Unity
пытается решить отслуживать с реализации X, и требующих для разрешения службы B, ...
Это помогло бы нам много, чтобы отладить эту проблему, чтобы непосредственно видеть, какие службы были вовлечены в эту циклическую ссылку.
Есть ли в любом случае для достижения этой цели?
Там нет трассировки или выхода в Unity при разрешении типов. Возможно, вы можете использовать пользовательское расширение для расширенного Unity с вашим желаемым поведением. – Jehof