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