代码之家  ›  专栏  ›  技术社区  ›  James Hulse

通过反射是否可以找到从一个类到另一个类的所有方法调用?

  •  2
  • James Hulse  · 技术社区  · 15 年前

    例如:

    如果class1调用class2.Foo()而不是class2.Bar(),那么我想知道它。

    就像对耦合的分析。这是否可能与反射有关?

    3 回复  |  直到 15 年前
        1
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    这是可能的,因为它是由几个ide(至少对于Java)完成的。在任何情况下,你很可能有一个部分错误的分析。在编译时很难确定在派生类中存在方法重写时调用哪些方法。

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

        2
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    不,反射是关于类型的,而不是代码。你可以找到你想要的任何东西系统反射关于类型的外观:字段、属性、事件和方法。但是 方法调用 在CIL中编码。反射停止在那里,你得到的只是MethodInfo.GetMethodBody方法().

    Reference Source .

        3
  •  -1
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    .NET Reflector NCover (我不确定我的名字是否正确)。netreflector有一个插件接口,所以您可以使用它做一些事情。