我想使用相对的 SyntaxTrees 和 SemanticModels (可能还包括 Compilation < / em>对象)。
我感兴趣的领域之一是实体装配,因为这对于查找和组织文件是必需的。由于SemanticModel允许获取ContainingAssembly字段,因此看起来非常简单:
Trying to get the ContainingAssembly from Dictionary we obtain the right one
其他时间(尽管未按计划进行):
Result obtained calling the function on a ClassDeclarationSyntaxNode
这是我的理论:在第一种情况下,编译具有对实体dll的引用( mscorlib 已被提供给Compilation对象),它可以轻松获取程序集 Dictionary <> 属于;在第二种情况下,我们仅将一堆SyntaxTrees添加到Compilation对象中,这导致一个近似的AssemblyName,即项目的名称(CodeAnalysis)+ Compilation。
有没有一种变通方法,可以让我始终获得正确的装配体?