コード例 #1
0
        public SyntaxTree EmitSyntax()
        {
            DetermineNamespaceImports(GetReferencedTypes(), out var usingSyntaxList, out var importContext);

            using (CodeGeneratorContext.GetContextOrThrow().PushState(importContext))
            {
                var typeSyntax = TypeSyntaxEmitter.GetSyntax(_type);
                var unitSyntax = SyntaxFactory.CompilationUnit()
                                 .WithUsings(SyntaxFactory.List(usingSyntaxList))
                                 .WithMembers(
                    SyntaxFactory.SingletonList <MemberDeclarationSyntax>(
                        SyntaxFactory.NamespaceDeclaration(CreateQualifiedNameSyntax(_type.Namespace.Split('.')))
                        .WithMembers(SyntaxFactory.SingletonList(typeSyntax))))
                                 .NormalizeWhitespace();

                return(unitSyntax.SyntaxTree);
            }
        }