Как найти происхождение атрибута от ISymbol - PullRequest
0 голосов
/ 13 декабря 2018

В настоящее время я разрабатываю DiagnosticAnalyzer , чтобы предупредить пользователей, если они пытаются использовать что-либо, помеченное пользовательским Attribute.

Допустим, у меня есть Attribute Experimental и объявлено поле

[Experimental]
Thing myThing;

, затем попробуйте использовать его где-нибудь

myThing.MethodOnThing()

Если я зарегистрируюсь на SyntaxKind.InvocationExpression в моем анализаторе я могу поймать это использование myThing и добавить предупреждение.Однако имя ISymbol будет MethodOnThing.Поэтому в моем предупреждении будет указано что-то вроде «MethodOnThing помечен как экспериментальный ...», когда я хотел бы сказать «myThing помечен как экспериментальный».

Я получаю атрибуты на символе, как этот

var symbol = context.SemanticModel.GetSymbolInfo(context.Node, context.CancellationToken).Symbol;
var attrs = symbol.GetAttributes();

Я хотел бы знать, есть ли точный способ доступа к источнику атрибута Experimental (myThing) когда я сейчас смотрю на вызов метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...