可以使用自定义模型绑定器来实现 [SwaggerIgnore],而不需要使用 [From
Service
s]。以下是一个示例:
首先,创建一个自定义模型绑定器,用来跳过在 Swagger 文档中显示的属性:
public class SwaggerIgnoreBinder : IModelBinder
public Task BindModelAsync(ModelBindingContext bindingContext)
bindingContext.Result = ModelBindingResult.Success(null);
return Task.CompletedTask;
然后,在需要隐藏的属性上使用自定义模型绑定器:
public class PersonModel
public int Id { get; set; }
public string Name { get; set; }
[ModelBinder(BinderType = typeof(SwaggerIgnoreBinder))]
public bool IsHidden { get; set; }
最后,在 Startup.cs 中注册自定义模型绑定器:
services.AddMvc(options =>
options.ModelBinderProviders.Insert(0, new BinderTypeModelBinderProvider(typeof(SwaggerIgnoreBinder)));
这样,IsHidden 属性将在 Swagger 文档中被忽略。