gpt4 book ai didi

c# - 如何使用 Roslyn 代码诊断识别和分析局部变量和参数?

转载 作者:行者123 更新时间:2023-11-30 14:28:50 27 4
gpt4 key购买 nike

我很困惑在 AnalysisContext 上下文 对象上使用哪种方法来分析每个函数/方法的局部变量:RegisterSymbolAction()RegisterSyntaxNodeAction( )

这可能是 RegisterSymbolAction() 根据 Roslyn SDK Project Templates.vsix 中的代码修复示例诊断 (NuGet + VSIX) .

我正在使用一个简单的控制台应用程序进行调试,它的 Main() 有一些 stringint 类型的局部变量。

我已经尝试了这两个,但都不会触发任何变量在它们各自的 AnalyzeSymbol() 回调方法中进行分析。局部变量不会命中每个回调方法中的断点。

如何在回调方法 AnalyzeSymbol() 中获取要分析的局部变量和/或我做错了什么?

var symbolsToActOn = new[] { SymbolKind.Local, SymbolKind.Parameter, SymbolKind.Field }; 
context.RegisterSymbolAction(AnalyzeSymbol, symbolsToActOn);

var syntaxTypes = new[] { SyntaxKind.IdentifierName, SyntaxKind.IdentifierToken, SyntaxKind.Parameter };
context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, syntaxTypes);

我的 demo project is on GitHub仔细看看,具体的一 block 在DiagnosticAnalyzer.cs .

最佳答案

不幸的是 RegisterSymbolAction 目前只能工作方法及以上。对于局部变量和参数,您需要使用 RegisterSyntaxNodeAction。我们希望在以后的构建中解决这个问题。

关于c# - 如何使用 Roslyn 代码诊断识别和分析局部变量和参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com