swashbuckle生成无效的字段名称

时间:2015-11-24 13:14:24

标签: swagger swagger-ui swashbuckle

似乎swashbuckle(5.2.2)生成了无效的字段名。我有一个(部分)看起来像这样的模型,所有属性都有一个后缀字段,带有后缀" Field"

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true,
    Namespace = "http://SomeCompany.Web.Service")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://SomeCompany.Web.Service", IsNullable = false)
]
public partial class GetOrderLines
{

    private string orderNumberField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string OrderNumber
    {
        get
        {
            return this.orderNumberField;
        }
        set
        {
            this.orderNumberField = value;
        }
    }
}

控制器方法签名如下所示:

public GetOrderLinesResponse Get([FromUri]GetOrderLines request)
{

}

生成的文档如下所示:

enter image description here

它正在使用私有字段的名称,而不是使用属性的名称。这是预期的行为吗?我有什么方法可以解决这个问题并获得实际的财产吗?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,并通过对相关问题的回答解决了问题 - https://stackoverflow.com/a/35725054/1462905

简短的回答是Json.NET为标记为Serializable的类做了不同的事情。

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver()
{
    IgnoreSerializableAttribute = true
};