APISampleUnitTestsCS.FAQ.UseSymbolicInformationPlusRewriterToMakeCodeChanges C# (CSharp) Метод

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

private UseSymbolicInformationPlusRewriterToMakeCodeChanges ( ) : void
Результат void
        public void UseSymbolicInformationPlusRewriterToMakeCodeChanges()
        {
            var tree = SyntaxTree.ParseText(@"
            using System;
            class Program
            {
            static void Main()
            {
            C x = new C();
            C.ReferenceEquals(x, x);
            }
            }
            class C
            {
            C y = null;
            public C()
            {
            y = new C();
            }
            }");
            var compilation = Compilation.Create("MyCompilation")
                .AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"))
                .AddSyntaxTrees(tree);
            var model = compilation.GetSemanticModel(tree);

            // Get the ClassDeclarationSyntax corresponding to 'class C' above.
            ClassDeclarationSyntax classDeclaration = tree.GetRoot()
                .DescendantNodes().OfType<ClassDeclarationSyntax>()
                .Single(c => c.Identifier.ToString() == "C");

            // Get Symbol corresponding to class C above.
            TypeSymbol searchSymbol = model.GetDeclaredSymbol(classDeclaration);
            SyntaxNode oldRoot = tree.GetRoot();
            var rewriter = new ClassRenamer()
            {
                SearchSymbol = searchSymbol,
                SemanticModel = model,
                NewName = "C1"
            };
            SyntaxNode newRoot = rewriter.Visit(oldRoot);

            Assert.AreEqual(@"
            using System;
            class Program
            {
            static void Main()
            {
            C1 x = new C1();
            C1.ReferenceEquals(x, x);
            }
            }
            class C1
            {
            C1 y = null;
            public C1()
            {
            y = new C1();
            }
            }", newRoot.ToFullString());
        }