11

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

4

3 回答 3

12

您需要解析您的代码才能执行此操作。我不认为你可以通过反思来做到这一点。MS 一直致力于一个名为 Roslyn 的项目。这是一种用于 .NET 编译器的 API。它应该为您提供所需的东西。查看这篇文章了解 Roslyn 项目的详细信息。

引用帖子:

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

这篇文章演示了如何使用符号。
这篇文章回答了获取所有参考的问题。

于 2012-08-05T15:09:46.563 回答
4

老实说,我以前从来没有这样做过,因为我从来不需要那种东西。

要访问您需要访问Token Tree的编译器类型的信息,为semantic analysis.

此类信息,您肯定可以从Roslyn(C# 编译器的 API)访问。您可以在其中将文本推送到 API 函数C#中,在其上运行编译器并恢复Tokens tree.

罗斯林项目概述

希望这可以帮助。

于 2012-08-05T15:10:16.170 回答
0

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

这不会在每次使用您的方法时特别找到,因为它还匹配注释、类似命名的字段、具有相同字符串的任何内容,但这是一个好的开始。

于 2012-08-05T15:18:55.373 回答