如何使用C#查找类或方法的用法?

时间:2012-08-05 15:06:09

标签: c# visual-studio

在Visual Studio中,我可以右键单击一个类或方法,然后选择“查找用法”。这给了我一个在我的解决方案中使用该代码的位置列表。我怎么能从我的代码中做同样的事情呢?

3 个答案:

答案 0 :(得分:10)

您需要解析代码才能执行此操作。我认为你不能用反射做到这一点。 MS一直致力于一个名为Roslyn的项目。这是.NET编译器的一种API。它应该为您提供所需的一切。查看this帖子了解Roslyn项目的详细信息。

从帖子中引用:

  

这为VS扩展程序编写强大功能开辟了新的机会   重构和语言分析工具,以及允许任何人   合并我们的解析器,语义引擎,代码生成器和   在自己的应用程序中编写脚本。

This post演示如何使用符号 This post回答了获取所有引用的问题。

答案 1 :(得分:4)

说实话,我之前从未这样做,因为我从来不需要那种东西。

要访问您需要访问Token Tree编译器的信息,请为semantic analysis构建。

这种信息,肯定您可以从Roslyn(C#编译器的API)访问。您可以在C#文本中插入API函数,在其上运行编译器并恢复Tokens tree

The Roslyn Project Overview

希望这有帮助。

答案 2 :(得分:0)

据我所知,无法找到解决方案中所有项目的所有用法。如果您的类具有唯一的名称,则Visual Studio的搜索功能具有“整个解决方案”搜索范围,该搜索范围在您的解决方案中的每个文件中查找确切的搜索文本。

这并不是每次使用你的方法时都会发现,因为它也匹配注释,类似命名的字段,具有相同字符串的任何东西,但它是一个好的开始。