我正在使用 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