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 關注
- 205 瀏覽
添加回答
舉報