C# 设置API模型属性的默认值属性,而不是“默认值”;“字符串”;
我有一个具有以下模型的web API:C# 设置API模型属性的默认值属性,而不是“默认值”;“字符串”;,c#,asp.net,asp.net-core,asp.net-web-api,C#,Asp.net,Asp.net Core,Asp.net Web Api,我有一个具有以下模型的web API: public class ParseLicenseRequest { public const string emptyStringDefault = ""; [Required(AllowEmptyStrings = false)] public string LicenseKey { get; set; } [DefaultValue(emptyStringDefault)] public
public class ParseLicenseRequest
{
public const string emptyStringDefault = "";
[Required(AllowEmptyStrings = false)]
public string LicenseKey { get; set; }
[DefaultValue(emptyStringDefault)]
public string Sid { get; set; } = emptyStringDefault;
public bool ShortFormat { get; set; }
}
编译代码时,它看起来像这样:
我正在尝试将sid的默认值设置为空:
"sid" : ""
但是,它不会将默认值设置为空。我认为您可以添加自定义ISchemaFilter来修改示例值: 注意:不确定您的招摇过市是什么版本,不同的招摇过市将使
Apply()
中的参数不同
public class CustomSchemaFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (context.Type == typeof(ParseLicenseRequest))
{
schema.Example = new OpenApiObject
{
["Sid"] = new OpenApiString("")
};
}
}
}
在Startup.cs中注册筛选器:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebapiProject5", Version = "v1" });
c.SchemaFilter<CustomSchemaFilter>();
});
services.AddSwaggerGen(c=>
{
c、 SwaggerDoc(“v1”,新OpenApiInfo{Title=“WebapiProject5”,Version=“v1”});
c、 SchemaFilter();
});
参考:
这是一个自负的“问题”。代码将按照您的预期工作。这是否回答了您的问题@tymtam不,因为我完全按照它说的做了你用的还是其他版本?您使用的是哪个版本号?您好@DanaGriff,我的回答有助于您解决问题吗?如果有,请接受我的回答。如果没有,请继续告诉我。请参阅:。谢谢。