次のようなソースファイルがあるとします。
public class FieldReference
{
int field;
public FieldReference()
{
field = 1;
}
}
SyntaxRewriter を使用して、このファイル内のすべての識別子にアクセスしています。VisitIdentifierName メソッドでは、識別子が現在のクラスのメンバーを参照しているかどうかを確認するために、セマンティック モデルで識別子を検索したいと考えています。
これは私がこれまでに持っているものです:
public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node)
{
SemanticModel model = this.compilation.GetSemanticModel(this.src);
// ?? look up identifier in compilation here ??
return base.VisitIdentifierName(node);
}
ただし、シマンティック モデルで識別子を検索する方法が見つかりません。IdentifierNameSyntax を受け入れる SemanticModel.GetDeclaredSymbol メソッドのオーバーロードはありません。
これをどのように行うべきか考えていますか?