代码中与签名匹配的方法列表(C# VS 使用 Roslyn 或扩展)
List of methods in code matching a signature (C# VS using Roslyn or an extension)
假设我正在我的解决方案中寻找与给定签名匹配的所有方法,是否有基于 Roslyn 或其他方式来查找和列出所有匹配方法?
您可以从 Syntax Analysis API of Roslyn, if you only need the type names (as written in code) for the return type and parameter types. Once you get a MethodDeclarationSyntax 节点开始,您可以使用 Identifier、ReturnType 和 ParameterList 属性来获取签名。由于您只对方法感兴趣而不对其他语法节点感兴趣,因此使用语法 walker 仅访问方法。第一篇 link 的文章有一节是关于他们的。请注意,C# 和 VB.NET 虽然相似,但具有不同的 API。
如果您需要完全解析的类型名称(带有命名空间、程序集等),您需要将 Semantic Analysis API(符号、绑定)与为您提供语义模型的编译一起使用,您可以查询语法节点的符号。
link包括文档和示例代码。
假设我正在我的解决方案中寻找与给定签名匹配的所有方法,是否有基于 Roslyn 或其他方式来查找和列出所有匹配方法?
您可以从 Syntax Analysis API of Roslyn, if you only need the type names (as written in code) for the return type and parameter types. Once you get a MethodDeclarationSyntax 节点开始,您可以使用 Identifier、ReturnType 和 ParameterList 属性来获取签名。由于您只对方法感兴趣而不对其他语法节点感兴趣,因此使用语法 walker 仅访问方法。第一篇 link 的文章有一节是关于他们的。请注意,C# 和 VB.NET 虽然相似,但具有不同的 API。
如果您需要完全解析的类型名称(带有命名空间、程序集等),您需要将 Semantic Analysis API(符号、绑定)与为您提供语义模型的编译一起使用,您可以查询语法节点的符号。
link包括文档和示例代码。