2015-11-24 6 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 
}; 
Смежные вопросы