AnalysisContext context
개체에서 사용할 모든 메서드/메서드의 로컬 변수가 RegisterSymbolAction()
또는 RegisterSyntaxNodeAction()
인 메서드를 혼동합니다.Roslyn 코드 진단 프로그램을 사용하여 지역 변수 및 매개 변수를 식별하고 분석하는 방법은 무엇입니까?
Roslyn SDK Project Templates.vsix의 코드 수정 진단 (NuGet + VSIX) 샘플에 따르면 RegisterSymbolAction()
일 가능성이 큽니다.
에 string
및 int
소수의 로컬 변수가있는 간단한 콘솔 앱을 사용하여 디버깅하고 있습니다.
나는이 두 가지를 시도했지만 두 변수 모두 해당하는 AnalyzeSymbol()
콜백 메소드에서 분석을 트리거하지 않습니다. 이러한 각 콜백 메소드 내의 중단 점은 로컬 변수에 적중하지 않습니다.
콜백 메소드 AnalyzeSymbol()
에서 분석 할 지역 변수를 얻는 방법과 내가 뭘 잘못하고있는 걸까요?
var symbolsToActOn = new[] { SymbolKind.Local, SymbolKind.Parameter, SymbolKind.Field };
context.RegisterSymbolAction(AnalyzeSymbol, symbolsToActOn);
또는 더 자세히 살펴에 대한 나의 demo project is on GitHub
var syntaxTypes = new[] { SyntaxKind.IdentifierName, SyntaxKind.IdentifierToken, SyntaxKind.Parameter };
context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, syntaxTypes);
, 그리고 특정 부분은
DiagnosticAnalyzer.cs입니다.
이 상태는 무엇입니까? 우리는 메소드/코드 블록 내에서 로컬 심볼을 의미 론적으로 분석 할 수 있기를 원합니다. – Jaans