2015-11-24 156 views
1

似乎swashbuckle(5.2.2)生成無效字段名稱。我有一個模型,(部分)看起來像這樣,所有屬性有一個支持字段以後綴「字段」swashbuckle生成無效字段名稱

[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

這是使用私有領域,而不是使用屬性的名稱的名稱。這是預期的行爲?有什麼辦法可以解決這個問題,並得到實際的財產嗎?

回答

0

我有一個類似的問題,並解決了相關問題的答案 - https://stackoverflow.com/a/35725054/1462905

簡短的回答是,Json.NET對標記爲Serializable的類做了些不同的事情。

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