运行项目时如何设置Swagger默认值?类中example注释配置不生效
Swagger 属性默认示例值配置方法
你之前用<example>XML注释配置没生效,是因为缺少两项前置配置,按下面步骤操作即可生效:
1. 开启项目XML文档生成
你可以直接修改项目.csproj文件,在PropertyGroup节点下添加如下配置:
<PropertyGroup> <!-- 开启XML注释文件生成 --> <GenerateDocumentationFile>True</GenerateDocumentationFile> <!-- 忽略未添加注释的编译警告,不需要可以不加 --> <NoWarn>$(NoWarn);1591</NoWarn> </PropertyGroup>
也可以右键项目进入「属性」-「生成」-「输出」面板,手动勾选「XML文档文件」选项。
2. 配置Swagger读取XML注释
在服务注入Swagger的代码段,添加XML注释文件的读取配置:
builder.Services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "接口文档", Version = "v1" }); // 拼接XML注释文件路径 var xmlFileName = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlFilePath = Path.Combine(AppContext.BaseDirectory, xmlFileName); // 第二个参数设为true,才会读取模型类的注释和<example>标签 options.IncludeXmlComments(xmlFilePath, true); });
配置完成后重新编译运行项目,你写的<example>12</example>就会显示在Swagger对应参数的示例位置。
其他替代配置方式
如果不想用XML注释,也可以用DefaultValue特性设置默认值:
- 先在SwaggerGen配置中开启默认值读取:
builder.Services.AddSwaggerGen(options => { // 原有配置不变,新增下面这行 options.UseDefaultValue(); });
- 在属性上添加特性即可:
/// <summary> /// 你的点差百分比 /// </summary> [System.ComponentModel.DefaultValue(12)] public decimal ClassNumber { get; set; } = default!;
内容的提问来源于stack exchange,提问作者moris62
相关产品推荐
相关产品推荐

