2010-09-30 36 views

回答

0

这是可能的,因为它是由几个IDE(至少对于Java)完成的。无论如何,你可能会有一个部分错误的分析。在编译时确定在派生类中存在方法覆盖时调用哪些方法是非常困难的。

不,这是不可能的反思。您需要静态代码分析来计算耦合度量。

+0

这是真的。在这个阶段可能有点太多了。谢谢 – 2010-09-30 01:55:34

2

不,反射是关于类型的,而不是代码。你可以通过System.Reflection找到任何你想要的东西:类型,属性,事件和方法。但是方法调用以CIL编码。反射停在那里,你得到的只是MethodInfo.GetMethodBody()。

这并没有阻止一些人;您实际上可以解释该方法交给您的CIL。 Lutz Roeder和他的令人敬畏的.NET反射器工具让人眼前一亮。我所知道的.NET框架实际运作的百分之九十,以及我自己如何能够获得优势的知识,都被交给了一张银牌。这是非常棒的;给这个人一枚奖章。和MSFT跟进Reference Source

+0

嗯,那是我怀疑的。我想知道IL翻译会有多难。我可以想象,在这个阶段对我来说,可能比在这个阶段值得付出更多的努力。我已经看到Assembly的一些属性,这些属性似乎是关于链接的组件,这些属性可能暗示其他程序集中已经调用过的其他程序集。 – 2010-09-30 01:54:55

+0

这是可行的,但做得比已有的更好,确实很难。有什么可用*是*好。获取引用的程序集很简单,只需使用Assembly.GetReferencedAssemblies()。 – 2010-09-30 02:01:42

-1

你不会说这是代码还是工具。在代码中,你需要检查一个类的CIL。

对于实用程序,您可以尝试.NET ReflectorNCover(我不确定我是否拥有正确的名称)。 .NET Reflector有一个插件接口,所以你可以用它做些什么。

+0

它会作为一个工具,我只是偶然发现** NDepend **,它似乎能够做我需要的东西。 – 2010-09-30 02:47:31

+0

这就是我的意思 – pm100 2010-09-30 16:25:38

相关问题