C# 从变量使用站点获取声明源

C# 从变量使用站点获取声明源,c#,vb.net,roslyn,C#,Vb.net,Roslyn,一个例子 Console.WriteLine( arg ) 我试图获取相应的符号,而不是声明/定义arg的接口。所以我可以举个例子,如果我们说下面的代码是站点的定义 Dim x = "Hello World" 这样我就可以得到指定值Hello World的范围/位置 请注意,不是在文本之后,因为我可以在使用站点获取变量arg的值。 调试器本地/监视窗口显示类型Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol.VariableLoca

一个例子

Console.WriteLine( arg )
我试图获取相应的符号,而不是声明/定义arg的接口。所以我可以举个例子,如果我们说下面的代码是站点的定义

Dim x = "Hello World"
这样我就可以得到指定值Hello World的范围/位置 请注意,不是在文本之后,因为我可以在使用站点获取变量arg的值。 调试器本地/监视窗口显示类型Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol.VariableLocalSymbol

不幸的是,这是内部的


如果有人知道,你能举个例子吗。

终于明白了。不要这样做是最好的方法,但它能满足我的需要

Dim ThisIdentifier=CTypeTheFormatString.Expression,IdentifierNameSyntax 如果此标识符为Nothing,则退出Sub Dim ConstValue=semanticModel.GetConstantValueThisIdentifier,cancellationToken 如果ConstValue.HasValue=False,则退出Sub Dim FoundSymbol=semanticModel.LookupSymbolsTheFormatString.Expression.Span.Start,名称:=thisdidentifier.Identifier.Text0 Dim VariableDeclarationSite=TryCastFoundSymbol.DeclaringSyntaxReferences0.GetSyntax.Parent,VariableDeclaratorSyntax 如果VariableDeclarationSite为Nothing,则退出Sub 调整变量的值=VariableDeclarationSite.Initializer.Value
例如,你所说的“定义站点”是指“去定义”会带你去哪里?