1 回答

TA贡献1853条经验 获得超9个赞
使用Ancestors或AncestorsAndSelf属性检索所有父级,以备份SyntaxTree。
从给定SyntaxNode直到根收集所有使用的代码CompilationUnitSyntax如下所示:
// collect usings
SyntaxList<UsingDirectiveSyntax> allUsings = SyntaxFactory.List<UsingDirectiveSyntax>();
foreach (var syntaxRef in ClassSymbol.DeclaringSyntaxReferences)
{
foreach (var parent in syntaxRef.GetSyntax().Ancestors(false))
{
if (parent is NamespaceDeclarationSyntax)
allUsings = allUsings.AddRange(((NamespaceDeclarationSyntax)parent).Usings);
else if (parent is CompilationUnitSyntax)
allUsings = allUsings.AddRange(((CompilationUnitSyntax)parent).Usings);
}
}
- 1 回答
- 0 关注
- 188 浏览
添加回答
举报