Пример #1
0
        protected override void Generate(
            CodeWriter writer,
            InterfaceTypeDescriptor descriptor,
            out string fileName)
        {
            fileName = descriptor.RuntimeType.Name;

            InterfaceBuilder interfaceBuilder = InterfaceBuilder
                                                .New()
                                                .SetName(fileName);

            foreach (var prop in descriptor.Properties)
            {
                interfaceBuilder
                .AddProperty(prop.Name)
                .SetType(prop.Type.ToBuilder())
                .SetPublic();
            }

            interfaceBuilder.AddImplementsRange(descriptor.Implements.Select(x => x.Value));

            CodeFileBuilder
            .New()
            .SetNamespace(descriptor.RuntimeType.NamespaceWithoutGlobal)
            .AddType(interfaceBuilder)
            .Build(writer);
        }
        protected override void Generate(InterfaceTypeDescriptor descriptor,
                                         CSharpSyntaxGeneratorSettings settings,
                                         CodeWriter writer,
                                         out string fileName,
                                         out string?path,
                                         out string ns)
        {
            fileName = descriptor.RuntimeType.Name;
            path     = null;
            ns       = descriptor.RuntimeType.NamespaceWithoutGlobal;

            InterfaceBuilder interfaceBuilder = InterfaceBuilder
                                                .New()
                                                .SetComment(descriptor.Description)
                                                .SetName(fileName);

            foreach (var prop in descriptor.Properties)
            {
                interfaceBuilder
                .AddProperty(prop.Name)
                .SetComment(prop.Description)
                .SetType(prop.Type.ToTypeReference())
                .SetPublic();
            }

            interfaceBuilder.AddImplementsRange(descriptor.Implements.Select(x => x.Value));
            interfaceBuilder.Build(writer);
        }