是否可以获取已作为元数据引用添加到编译中的程序集导出的类型的 ITypeSymbol 集合?
我想检查引用项目可用的类型。
最佳答案
调用Compilation.GetAssemblyOrModuleSymbol()
对于每个 MetadataReference,转换为 IAssemblySymbol
,然后查看TypeNames
属性(返回字符串)。
获取实际的ITypeSymbol
对于每种类型,获取程序集的 GlobalNamespace
,然后递归地爬取 GetMembers()
(其中包括类型和嵌套命名空间)。您可以继承 SymbolVisitor<IEnumerable<ITypeSymbol>>
帮助递归(特别是对于嵌套类型)。
关于.net - 获取 MetadataReference 的导出语义模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32914240/