简单的语法替换
该示例将using System.Collections.Generic替换为using System
static void Main(string[] args)
{
const string programText =
@"
using System.Collections.Generic;
using System.Text;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(""Hello, World!"");
}
}
}";
SyntaxTree tree = CSharpSyntaxTree.ParseText(programText);
// 获取根语法节点
CompilationUnitSyntax root = tree.GetCompilationUnitRoot();
var oldUsing = root.Usings[0];
// 使用新的 Name,该方法会返回一个新的 语法节点
var newUsing = oldUsing.WithName(SyntaxFactory.IdentifierName("System"));
// 用新的语法节点替换旧的,返回新的根
root = root.ReplaceNode(oldUsing, newUsing);
Console.WriteLine(root.ToString());
Console.ReadKey();
}