首页 > 解决方案 > 为 c# 对象上的属性名称关闭 CamelCase

问题描述

这是 DTO C# 类:

public class WeatherForecast
        {
            public string DateFormatted { get; set; }
        }

这是在招摇定义中生成的:

{"WeatherForecast":{"type":"object","properties":{"dateFormatted":{"type":"string"}}}}

问题是当我生成一个 XML 示例时:

<?xml version="1.0" encoding="UTF-8"?>
<WeatherForecast>
    <dateFormatted>string</dateFormatted>
</WeatherForecast>

问题是当我将该 XML 发送回 API 时,它不会填充 DateFormatted 属性。如果我更改大小写以使其不再是 CamelCase (DateFormatted),则它可以正常工作,并且该属性将填充“字符串”。

生成 swagger 定义时如何关闭 CamelCase?

标签: swagger-ui

解决方案


在 aspnet 中默认情况下驼峰属性名称,因此您可以Startup

services.AddMvc();

services
        .AddMvc()
        .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());

参考:aspnet


推荐阅读