Я использую Roslyn, чтобы сгенерировать дерево из другого. Итак, мы имеем дело с преобразованием AST. Я использую SyntaxFactory
для создания узлов.
В конкретном случае я хочу создать директиву u using
, которая должна выглядеть так:
using MyNamespace.SubNamespace;
So I do:
var usingDirective = SyntaxFactory.UsingDirective(SyntaxFactory.ParseName("MyNamespace.SubNamespace"));
var newNode = mynode.AddUsings(new[] { usingDirective });
Но если я проверю окончательное дерево newNode
, которое сгенерировано (исходный код строки, сгенерированный простым вызовом newNode.ToString()
), я вижу, что моя директива была добавлена следующим образом:
usingMyNamespace.SubNamespace;
Я могу увидеть то же самое, если просто сделаю: usingDirective.ToString()
. Это кажется очень неправильным, требуется пробел, и это должно вызвать синтаксическую ошибку. Что здесь происходит?