Недавно я начал использовать инъекцию зависимостей. В простых случаях у меня не было никаких проблем, но с увеличением сложности мне было трудно быстро найти круговые зависимости.
Здесь пример циклической зависимости с вводом конструктора:
public class Class1
{
public Class1(Class2 test2)
{ ... }
}
public class Class2
{
public Class2(Class1 test1)
{ ... }
}
Я использую контейнер Unity IoC. Круговая зависимость вызывает бесконечную рекурсию и StackOverflowException
, которые должны быть выбраны в конструкторе.
Очевидно, что подобные зависимости - это запах кода, потому что он нарушает принцип единой ответственности, поэтому они должны быть локализованы и реорганизованы.
Есть ли какие-либо инструменты для Visual Studio для автоматического обнаружения этих зависимостей?