Я хотел бы извлечь как можно больше информации о зависимостях сущностей в проекте, используя относительные SyntaxTrees и SemanticModels (и, возможно, Компиляция объект).
Одним из полей, которые меня интересуют, является сборка объекта, так как это необходимо для поиска и организации файлов.Поскольку SemanticModel позволяет получить поле ConistingAssembly, оно показалось довольно простым:
Пытаясь получить ConistingAssembly из словаря, мы получаем правильное
В других случаях, хотя это не такне по плану:
Результат, полученный при вызове функции для ClassDeclarationSyntaxNode
Вот моя теория: в первом случае компиляция имеет ссылку на сущностьdll ( mscorlib передан объекту Compilation), он может легко получить сборку, к которой принадлежит Dictionary <> ;во втором случае к объекту компиляции добавляется только группа SyntaxTrees, и это приводит к примерному AssemblyName, то есть имени проекта (CodeAnalysis) + Compilation.
Есть ли обходной путь, который позволяет мнеполучить всегда правильную сборку?