Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Visual Studio 中,我可以右键单击一个类或方法并选择“查找用法”。这为我提供了解决方案中使用该代码的位置的列表。我怎样才能从我的代码中做同样的事情?
您需要解析您的代码才能执行此操作。我不认为你可以通过反思来做到这一点。MS 一直致力于一个名为 Roslyn 的项目。这是一种用于 .NET 编译器的 API。它应该为您提供所需的东西。查看这篇文章了解 Roslyn 项目的详细信息。
引用帖子:
这为 VS 扩展程序提供了编写强大重构和语言分析工具的新机会,并允许任何人将我们的解析器、语义引擎、代码生成器和脚本合并到他们自己的应用程序中。
这篇文章演示了如何使用符号。 这篇文章回答了获取所有参考的问题。
老实说,我以前从来没有这样做过,因为我从来不需要那种东西。
要访问您需要访问Token Tree的编译器类型的信息,为semantic analysis.
Token Tree
semantic analysis
此类信息,您肯定可以从Roslyn(C# 编译器的 API)访问。您可以在其中将文本推送到 API 函数C#中,在其上运行编译器并恢复Tokens tree.
C#
Tokens tree
罗斯林项目概述
希望这可以帮助。
据我所知,没有办法找到解决方案中所有项目的所有用法。如果你的类有一个唯一的名称,Visual Studio 的搜索功能有一个“整个解决方案”搜索范围,它在你的解决方案的每个文件中查找确切的搜索文本。
这不会在每次使用您的方法时特别找到,因为它还匹配注释、类似命名的字段、具有相同字符串的任何内容,但这是一个好的开始。