我想使用Roslyn CTP创建新方法。我创建了一个新的实例类型的MethodDeclarationSyntax。
MethodDeclarationSyntax lMethodDeclarationSyntax = Syntax.MethodDeclaration(
Syntax.List<AttributeListSyntax>(),
Syntax.TokenList(
Syntax.Token(SyntaxKind.PublicKeyword)),
Syntax.IdentifierName("MemoryStream"),
null,
Syntax.Identifier("Serialize"),
null,
Syntax.ParameterList(),
Syntax.List<TypeParameterConstraintClauseSyntax>(),
Syntax.Block(lList));
但作为回应我得到这样的东西:
publicMemoryStreamSerialize(){MemoryStream lMemoryStream = new MemoryStream();StreamWriter lStreamWriter = new StreamWriter(lMemoryStream);lStreamWriter.Write(IntVariable);lStreamWriter.Write(ExVariable.ToStream());return lMemoryStream;}
我错过了什么?
答案 0 :(得分:2)
在末尾添加NormalizeWhitespace
,将标准化的空白琐事添加到树中。
MethodDeclarationSyntax lMethodDeclarationSyntax =
Syntax.MethodDeclaration(
Syntax.List<AttributeListSyntax>(),
Syntax.TokenList(Syntax.Token(SyntaxKind.PublicKeyword)),
Syntax.IdentifierName("MemoryStream"),
null,
Syntax.Identifier("Serialize"),
null,
Syntax.ParameterList(),
Syntax.List<TypeParameterConstraintClauseSyntax>(),
Syntax.Block(lList))
.NormalizeWhitespace();
您可以对任何语法节点执行此操作,它将返回一个节点,其中所有空白琐事在整个树中进行规范化。请记住,节点树是不可变的,因此它不会对现有树产生任何影响,但会创建一个新树。