我正在使用Roslyn来生成另一个树。所以我们正在处理AST转换。我正在使用SyntaxFactory
来生成节点。
在特定情况下,我想创建一个如下所示的u using
指令:
using MyNamespace.SubNamespace;
所以我这样做:
var usingDirective = SyntaxFactory.UsingDirective(SyntaxFactory.ParseName("MyNamespace.SubNamespace"));
var newNode = mynode.AddUsings(new[] { usingDirective });
但是,如果我检查生成的最终树newNode
(通过简单地调用newNode.ToString()
生成的字符串源代码),我看到我的指令已添加如下:
usingMyNamespace.SubNamespace;
如果我这样做,我可以看到同样的事情:usingDirective.ToString()
。这似乎非常错误,需要一个空间,这应该会触发语法错误。发生了什么事?
答案 0 :(得分:3)
添加此项以解决问题:
SyntaxFactory.UsingDirective(
SyntaxFactory.ParseName("MyNamespace.SubNamespace")).NormalizeWhitespace();