Identifizierer im semantischen Modell suchen

8

Angenommen, ich habe eine Quelldatei, die wie folgt aussieht:

%Vor%

Ich verwende einen SyntaxRewriter, um alle Bezeichner in dieser Datei zu besuchen. In der VisitIdentifierName-Methode möchte ich den Bezeichner im semantischen Modell nachschlagen, um festzustellen, ob sich ein Bezeichner auf ein Mitglied der aktuellen Klasse bezieht.

Das habe ich bisher:

%Vor%

Allerdings kann ich den Bezeichner im semantischen Modell nicht finden - es gibt keine Überladung der SemanticModel.GetDeclaredSymbol-Methode, die eine IdentifierNameSyntax akzeptiert.

Irgendeine Idee, wie ich das tun sollte?

    
Grokys 30.08.2012, 09:26
quelle

1 Antwort

9

Sie sollten SemanticModel.GetSymbolInfo für den Ausdruck verwenden (in diesem Fall IdentifierNameSyntax ).

GetDeclaredSymbol dient dazu, vom Deklarationspunkt ( int field; oben) zu einem Symbol zu gehen. Um die Bindungslogik des Compilers auszuführen und zu sehen, an welches Symbol ein bestimmter Ausdruck gebunden ist, verwenden Sie GetSymbolInfo .

    
Kevin Pilch 30.08.2012, 15:27
quelle

Tags und Links