在Visual Studio中,我可以右键单击一个类或方法,然后选择“查找用法”。这给了我一个在我的解决方案中使用该代码的位置列表。我怎么能从我的代码中做同样的事情呢?
答案 0 :(得分:10)
您需要解析代码才能执行此操作。我认为你不能用反射做到这一点。 MS一直致力于一个名为Roslyn的项目。这是.NET编译器的一种API。它应该为您提供所需的一切。查看this帖子了解Roslyn项目的详细信息。
从帖子中引用:
这为VS扩展程序编写强大功能开辟了新的机会 重构和语言分析工具,以及允许任何人 合并我们的解析器,语义引擎,代码生成器和 在自己的应用程序中编写脚本。
答案 1 :(得分:4)
说实话,我之前从未这样做,因为我从来不需要那种东西。
要访问您需要访问Token Tree
编译器的信息,请为semantic analysis
构建。
这种信息,肯定您可以从Roslyn(C#编译器的API)访问。您可以在C#
文本中插入API函数,在其上运行编译器并恢复Tokens tree
。
希望这有帮助。
答案 2 :(得分:0)
据我所知,无法找到解决方案中所有项目的所有用法。如果您的类具有唯一的名称,则Visual Studio的搜索功能具有“整个解决方案”搜索范围,该搜索范围在您的解决方案中的每个文件中查找确切的搜索文本。
这并不是每次使用你的方法时都会发现,因为它也匹配注释,类似命名的字段,具有相同字符串的任何东西,但它是一个好的开始。