似乎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)
{
}
生成的文档如下所示:
它正在使用私有字段的名称,而不是使用属性的名称。这是预期的行为吗?我有什么方法可以解决这个问题并获得实际的财产吗?
答案 0 :(得分:1)
我遇到了类似的问题,并通过对相关问题的回答解决了问题 - https://stackoverflow.com/a/35725054/1462905。
简短的回答是Json.NET为标记为Serializable
的类做了不同的事情。
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver()
{
IgnoreSerializableAttribute = true
};