Question

I try to use method ReplaceNode, replacement process is successful, but i can't save changes.
For example part of my code

SyntaxTree tree = SyntaxTree.ParseFile(Path)
CompilationUnitSyntax root = tree.GetRoot();
MemberDeclarationSyntax firstMember = root.Members[0];
NamespaceDeclarationSyntax NamespaceDeclaration = (NamespaceDeclarationSyntax)firstMember;
NamespaceDeclaration =     NamespaceDeclaration.ReplaceNode((ClassDeclarationSyntax)NamespaceDeclaration.Members[i], lNewClassDeclarationSyntax);

How i must save changes?

Was it helpful?

Solution 2

root = root.ReplaceNode(lNamespaceDeclarationSyntax.Members[i], newRoot);
File.WriteAllText(tree.FilePath, root.GetText().ToString());

Need replace nodes in root...

OTHER TIPS

Slightly cleaner than File.WriteAllText, just create a new syntax tree using the updated root node:

root = root.ReplaceNode(oldNode, newNode);
tree = SyntaxTree.Create(root);
root = tree.GetRoot();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top