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); } }