我目前正在开发DiagnosticAnalyzer来警告用户,如果他们尝试使用带有自定义Attribute
标签的内容。
假设我有一个Attribute
Experimental
并声明了一个字段
[Experimental]
Thing myThing;
然后尝试在某处使用
myThing.MethodOnThing()
如果我在分析仪中注册了SyntaxKind.InvocationExpression
,则可以捕获myThing
的使用并添加警告。但是,ISymbol
的名称将为MethodOnThing
。因此,当我想说“ myThing被标记为实验”时,我的警告将显示类似“ MethodOnThing被标记为实验...”的内容。
我正在像这样获得符号上的属性
var symbol = context.SemanticModel.GetSymbolInfo(context.Node, context.CancellationToken).Symbol;
var attrs = symbol.GetAttributes();
当我正在查看方法的调用时,我想知道是否存在一种精确的方法来访问Experimental
属性(myThing
)的源。