gpt4 book ai didi

c# - 从 TypeSyntax 获取 SyntaxTree

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:47 24 4
gpt4 key购买 nike

有没有一种简单的方法可以到达定义了特定 TypeSyntax 的文档的 SyntaxTree

每当 TypeSyntaxIdentifierNameSyntax 时,我都可以获得 Identifier 属性,但我仍然无法获得访问 的安全方法>类型的语法树

更新:

这是我目前拥有的:

var right = exp.Right as ObjectCreationExpressionSyntax;
if (right != null) {
Compilation comp;
if ((comp = activeProject.GetCompilationAsync().Result) != null) {
bool cst = comp.ContainsSyntaxTree(right.Type.SyntaxTree);
var semanticModel = comp.GetSemanticModel(right.Type.SyntaxTree);
var typeInfo = semanticModel.GetTypeInfo(right.Type);
Console.WriteLine();
//var c = comp.GetSemanticModel(comp);
//var model = c.GetTypeInfo(right.Type as TypeSyntax);
//var v = model.Type.DeclaringSyntaxReferences;
}
}

最佳答案

要读取类型信息,您需要获取语义模型。

调用SemanticModel.GetSymbolInfo(TypeSyntax)获取SymbolInfo,然后读取DeclaringSyntaxReferences property的符号。

请注意,部分类可能在多个文件中定义了多个符号。

关于c# - 从 TypeSyntax 获取 SyntaxTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652710/

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