我正在使用Spring.NET的IoC容器,一切都运行良好......直到现在。不知何故,在我们之前的一个版本中,我们引入了循环依赖。由于我们使用基于setter的注入而不是基于构造函数的注入,Spring.NET只是保持哼唱,但我们的应用程序的行为发生了变化。
现在我有一个包含大约一百个组件的解决方案,并且在那堆组件中存在一个循环依赖,我现在需要找到它。
是否有任何工具可以使用我的Spring.NET配置文件并为我提供组件及其依赖项的图形图片?
答案 0 :(得分:3)
AFAIK没有这样的工具可用,虽然有一个用于Java的spring。 这thread on the spring.net forum 讨论了这个问题并提出了解决方案。 我使用QuickGraph基于Thomas Darimont的方法做了一个快速而肮脏的概念证明。
对于以下配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object id="a1" type="q7446068.ClassA, q7446068" >
<property name="MyOtherA" ref="a2" />
</object>
<object id="a2" type="q7446068.ClassA, q7446068" >
<property name="MyOtherA" ref="a1" />
</object>
<object id="a3" type="q7446068.ClassA, q7446068" />
</objects>
我能够创建以下点文件:
digraph G {
0 [label="a1"];
1 [label="a2"];
2 [label="a3"];
0 -> 1 [];
1 -> 0 [];
}
显示循环依赖。
代码可用as a gist。