Я пишу расширение Visual Studio 2015, которое просматривает содержимое класса, на который пользователь щелкнул правой кнопкой мыши.Получение Roslyn SemanticModel из ProjectItem в расширении Visual Studio
У меня есть ProjectItem
, но как вы получаете SemanticModel
(и SyntaxTree
)?
Мне нужно найти некоторые свойства, объявленные в файле. Я написал анализатор кода, который дает вам SemanticModel
в контексте, но я не могу понять, как его получить здесь. Поиски не принесли ничего полезного. Я нашел, как разобрать SyntaxTree
, прочитав содержимое файла, но с SemanticModel
это будет не так просто. В идеале я бы подключился к модели VS, уже построенной для файла.
Да, там должен быть какой-то способ для доступа к VisualStudioWorkspace. У нас есть простые помощники, чтобы перейти из рабочей области в FileCodeModel, но с любопытством я не знаю, есть ли у нас другой способ. Просто, чтобы проверить, что вы изначально начали с того, что дало вам ProjectItem? –
@JasonMalinowski У меня есть команда, запущенная из пункта контекстного меню в SolutionExplorer. Когда он вызывается, я использую DTE2.ToolWindows.SolutionExplorer.SelectedItems, а затем перебрасывает свойство Object в ProjectItem. – RandomEngy