APISampleUnitTestsCS.SyntaxTrees.InsertNode C# (CSharp) Метод

InsertNode() приватный Метод

private InsertNode ( ) : void
Результат void
        public void InsertNode()
        {
            string text = "class C { void M() { } }";
            var tree = SyntaxTree.ParseText(text);
            var root = (CompilationUnitSyntax)tree.GetRoot();
            var classNode = root.ChildNodes().First() as ClassDeclarationSyntax;

            var newMethod = Syntax.MethodDeclaration(Syntax.ParseTypeName("int"), Syntax.Identifier("NewMethod"))
                .WithBody(Syntax.Block());

            var newMembers = Syntax.List<MemberDeclarationSyntax>(classNode.Members.Concat(new[] { newMethod }));

            var newClass = Syntax.ClassDeclaration(
                classNode.AttributeLists,
                classNode.Modifiers,
                classNode.Keyword,
                classNode.Identifier,
                classNode.TypeParameterList,
                classNode.BaseList,
                classNode.ConstraintClauses,
                classNode.OpenBraceToken,
                newMembers,
                classNode.CloseBraceToken,
                classNode.SemicolonToken).NormalizeWhitespace(elasticTrivia: true);

            root = root.ReplaceNode(classNode, newClass);
            tree = SyntaxTree.Create(root, tree.FilePath, tree.Options);
            Assert.AreEqual(@"class C
            {
            void M()
            {
            }

            int NewMethod()
            {
            }
            }", tree.GetText().ToString());
        }