Wann SemanticModel.GetSymbolInfo und wann SemanticModel.GetDeclaredSymbol verwendet werden soll

8

In einigen Fällen, wenn ich versuche, das ISymbol für meinen Syntax-Knoten zu bekommen, scheitere ich (NULL zu bekommen), wenn ich SemanticModel.GetSymbolInfo verwende, aber erfolgreich, wenn ich SemanticModel.GetDeclaredSymbol verwende.

Ich habe ein Beispiel unten angefügt.

Meine Frage ist also, wann ich jede der Methoden zum Erhalten des semantischen Modells verwenden soll?

%Vor%     
Eli Dagan 03.11.2015, 06:49
quelle

1 Antwort

5

Ich glaube, das Symbol für einen bestimmten Syntax-Knoten, bedeuten immer und nicht das semantische Modell für den Baum zu bekommen.

Im Allgemeinen, wenn Sie das zugrunde liegende Symbol einer Erklärung (Klasse, Eigenschaft, Methode, ...) erhalten wollen, dann sollten Sie das GetDeclaredSymbol verwenden. Intern GetSymbolInfo ruft diese Methode. Sie können die verschiedenen Fälle dort behandelt sehen. Erklärungen werden nicht behandelt, so dass für diejenigen, die Sie% verwenden müssen, würde co_de%, deren Interna Sie können eine href finden <= "http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis.CSharp/Compilation/CSharpSemanticModel .cs, 4425 "> hier .

    
Tamas 03.11.2015, 07:38
quelle

Tags und Links