gpt4 book ai didi

c# - 如何使用 Roslyn (Microsoft CodeAnalysis) 获取范围内的所有可见局部变量名称

转载 作者:太空狗 更新时间:2023-10-30 00:24:36 25 4
gpt4 key购买 nike

(请注意:这与运行时反射/元信息无关)

我正在编写 Roslyn CSharpSyntaxVisitor 的具体实现

实现 VisitIdentifierName 时

public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax name)
{
var symbolInfo = _semanticModel.GetSymbolInfo(name);
var fieldSymbol = symbolInfo.Symbol as IFieldSymbol;
if (fieldSymbol != null)
{
// Here I would like to get all the local variable names what are visible
// in the very same scope where this field IdentifierNameSyntax under visiting resides
// We can suppose that _semanticNodel for the Document is available.
}
}

最佳答案

调用SemanticModel.LookupSymbols() ( source ),然后过滤局部变量。

您可能还想过滤掉在该位置之后声明的本地人;见this code .

关于c# - 如何使用 Roslyn (Microsoft CodeAnalysis) 获取范围内的所有可见局部变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539872/

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