有没有办法知道对象的C#方法是否被调用?

时间:2010-10-14 08:40:12

标签: c# reflection

有没有办法知道是否使用反射调用对象的C#方法?

4 个答案:

答案 0 :(得分:1)

找出您的方法是否被调用的一种方法是使用代码覆盖率工具。 Visual Studio Ultimate包含有助于确定代码覆盖率的工具。您首先检测代码,然后运行测试,或正常运行您的应用程序,然后检查结果。

或者您可以使用文本编辑器在源代码中搜索方法名称。 (这是迄今为止最容易的)。

答案 1 :(得分:0)

没有。反射只知道一个类型是如何构造的,而不是你的应用程序如何调用它。

您可以在方法中创建一个 StackFrame 数组,以了解它的调用方式。

Resharper可以检查方法是否被调用(它是一个Visual Studio插件)

答案 2 :(得分:0)

如果您的问题是如何确定在任何场景和任何输入中是否会调用特定方法,那么反射就无法为您做到。

您需要使用工具来执行静态程序分析,但这些工具并不适合在运行时使用。

如果您可以更详细地描述您想要实现的目标,我们可能会提出另一种选择。

答案 3 :(得分:0)

如果要查找程序集中任何从未被程序集的任何其他部分调用的方法,FxCop都有一个“死代码”规则,可以找到任何此类方法。

死代码搜索不包括可以从外部世界调用的方法,例如公共方法。