我正在尝试使用其他语法扩展Roslyn编译器,这与LINQ必须事先知道Select
,Zip
等是否可以应用于该类型。我在绑定器中执行此操作,因为我将嵌套语法节点简化为单个绑定表达式。 GetMembers
上的NamedTypeSymbol
仅返回该类型的实际成员。如何获取为该类型定义的扩展方法列表,并且可以在代码中的此处访问?
答案 0 :(得分:0)
我不确定这是否可以在Binder
级别上运行,但是如果你能掌握Compilation
级别,那么你可以查询它的GlobalNamespace
属性,“包含源代码或引用元数据中定义的所有名称空间和类型的根名称空间,合并到单个名称空间层次结构中。”从这里你可以获得(顶级)类型声明,然后你可以简单地查找与你正在处理的类型匹配的任何扩展方法。