2

我正在使用 NSwag 从我的控制器生成 OpenApi3 规范。我还使用 IDocumentProcessor 的自定义实现来生成控制器中不包含的模型。后处理器模型与控制器方法共享抽象类。IDocumentProcessor 中生成的模型似乎复制了抽象类。有没有办法避免这种情况?

我的 IDocumentProcessor :

 private class SwaggerDocumentProcessor : IDocumentProcessor
    {
        public void Process(DocumentProcessorContext context)
        {
            var assembly = Assembly.GetExecutingAssembly()
                .GetReferencedAssemblies()
                .FirstOrDefault(a => string.Equals(a.Name, "Api.Model", StringComparison.Ordinal));

            if (assembly != null)
            {
                var loadedAssembly = Assembly.Load(assembly);
                var types = loadedAssembly.GetTypes();

                foreach (var type in types)
                {
                    if (context.SchemaResolver.HasSchema(type, false)) continue;

                    if (type.IsClass)
                    {
                        context.SchemaGenerator.Generate(new JsonSchema(), type, context.SchemaResolver);
                    }
                }
            }
        }
    }

从我所见,似乎添加了重复项,因为另一个类将抽象类作为通用约束

public class ActivityEvent<TModel> : EventBase where TModel : Activity

在此处输入图像描述

4

0 回答 0