假设我正在寻找解决方案中与给定签名匹配的所有方法,是否有基于Roslyn的方法或其他方法来查找和列出所有匹配的方法?
答案 0 :(得分:1)
如果只需要返回名称和参数类型的类型名称(用代码编写),则可以从Roslyn的Syntax Analysis API开始。一旦获得MethodDeclarationSyntax节点,就可以使用Identifier,ReturnType和ParameterList属性来获取签名。由于您仅对方法感兴趣,而对其他语法节点不感兴趣,因此请使用语法遍历器仅访问方法。第一个链接的文章包含有关它们的部分。请注意,尽管C#和VB.NET具有相似的API,但它们具有不同的API。
如果您需要完全解析的类型名称(包括名称空间,程序集等),则需要使用Semantic Analysis API(符号,绑定)和一个提供语义模型的Compilation,并且可以查询符号语法节点。
链接包括文档和示例代码。