Roslyn, получите содержащий сборку в согласованном порядке - PullRequest
0 голосов
/ 30 сентября 2018

Я хотел бы извлечь как можно больше информации о зависимостях сущностей в проекте, используя относительные SyntaxTrees и SemanticModels (и, возможно, Компиляция объект).

Одним из полей, которые меня интересуют, является сборка объекта, так как это необходимо для поиска и организации файлов.Поскольку SemanticModel позволяет получить поле ConistingAssembly, оно показалось довольно простым:

Пытаясь получить ConistingAssembly из словаря, мы получаем правильное

В других случаях, хотя это не такне по плану:

Результат, полученный при вызове функции для ClassDeclarationSyntaxNode

Вот моя теория: в первом случае компиляция имеет ссылку на сущностьdll ( mscorlib передан объекту Compilation), он может легко получить сборку, к которой принадлежит Dictionary <> ;во втором случае к объекту компиляции добавляется только группа SyntaxTrees, и это приводит к примерному AssemblyName, то есть имени проекта (CodeAnalysis) + Compilation.

Есть ли обходной путь, который позволяет мнеполучить всегда правильную сборку?

...