最近我开始使用依赖注入。在简单的情况下,我没有任何问题,但随着复杂性的增加,我发现很难快速找到循环依赖。
以下是使用构造函数注入的循环依赖的示例:
public class Class1
{
public Class1(Class2 test2)
{ ... }
}
public class Class2
{
public Class2(Class1 test1)
{ ... }
}
我使用Unity IoC容器。循环依赖导致无限递归,并在构造函数中抛出StackOverflowException
。
显然,这种依赖是一种代码味道,因为它违反了单一责任原则,所以它们应该被本地化和重构。
是否有任何工具可供Visual Studio自动检测这些依赖项?