コード例 #1
0
        public static CompilationUnitSyntax GeneratePackageApiMetadata(string ns, SourceFileContext ctx, IEnumerable <FileDescriptor> packageFileDescriptors)
        {
            var namespaceDeclaration = Namespace(ns);

            using (ctx.InNamespace(namespaceDeclaration))
            {
                var descriptorClass = GenerateClass(ns, ctx, packageFileDescriptors);
                namespaceDeclaration = namespaceDeclaration.AddMembers(descriptorClass);
            }
            return(ctx.CreateCompilationUnit(namespaceDeclaration));
        }
        public static CompilationUnitSyntax GenerateExtensions(SourceFileContext ctx, List <ServiceDetails> packageServiceDetails)
        {
            var ns = typeof(IServiceCollection).Namespace;
            var namespaceDeclaration = Namespace(ns);

            using (ctx.InNamespace(namespaceDeclaration))
            {
                var cls = Class(Public | Static | Partial, Typ.Manual(ns, ClassName))
                          .WithXmlDoc(XmlDoc.Summary("Static class to provide extension methods to configure API clients."));

                cls = cls.AddMembers(packageServiceDetails.Select(m => GenerateMethod(ctx, m)).ToArray());
                namespaceDeclaration = namespaceDeclaration.AddMembers(cls);
            }
            return(ctx.CreateCompilationUnit(namespaceDeclaration));
        }
コード例 #3
0
        public static CompilationUnitSyntax Generate(SourceFileContext ctx, ServiceDetails svc, HashSet <Typ> seenPaginatedResponseTyps)
        {
            var ns = Namespace(svc.Namespace);

            using (ctx.InNamespace(ns))
            {
                var settingsClass       = ServiceSettingsCodeGenerator.Generate(ctx, svc);
                var builderClass        = ServiceBuilderCodeGenerator.Generate(ctx, svc);
                var abstractClientClass = ServiceAbstractClientClassCodeGenerator.Generate(ctx, svc);
                var implClientClass     = ServiceImplClientClassGenerator.Generate(ctx, svc);
                ns = ns.AddMembers(settingsClass, builderClass, abstractClientClass, implClientClass);

                ns = ns.AddMembers(PaginatedPartialClasses(ctx, svc, seenPaginatedResponseTyps).ToArray());
                ns = ns.AddMembers(LroPartialClasses(ctx, svc).ToArray());
            }
            return(ctx.CreateCompilationUnit(ns));
        }