ICodeIssueProvider
クラス(またはその基本型の1つ)に特定の属性があるかどうかを検出するために実装しようとしています。
public IEnumerable<CodeIssue> GetIssues(IDocument document,
CommonSyntaxNode node,
CancellationToken cancellationToken)
{
var methodDeclaration = (MethodDeclarationSyntax)node;
var semanticModel = document.GetSemanticModel(cancellationToken);
var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration);
var typeSymbol = methodSymbol.ContainingType;
// The following only gets attributes declared on this class, how to
// also include those declared on a base class ?
var attributes = typeSymbol.GetAttributes();
ずっと歩いてtypeSymbol.BaseType
途中System.Object
で電話するよりも良い方法はありGetAttributes()
ますか?
また、typeSymbol
特定のクラスから派生しているかどうかを確認するよりも.BaseType
、手動で確認するよりも良い方法はありますか
MethodDeclarationSyntax
(そして、ノードではなくノードをチェックするための以下のサンプルから明らかではない理由がありますClassDeclarationSyntax
)