Problema:WCF DataContract, algunos campos no deserializar
Tengo una configuración de servicio WCF para ser un punto final para una llamada desde un sistema externo. La llamada está enviando xml simple. Estoy probando el sistema enviando llamadas al servicio desde Fiddler usando RequestBuilder.
El problema es que todos mis campos están siendo deserializados, con la excepción de dos campos. price_retail y price_wholesale.
¿Qué me estoy perdiendo? Todos los demás campos se deserializan sin problemas: el servicio responde. Es solo estos campos.
mensaje XML:
<widget_conclusion>
<list_criteria_id>123</list_criteria_id>
<list_type>consumer</list_type>
<qty>500</qty>
<price_retail>50.00</price_retail>
<price_wholesale>40.00</price_wholesale>
<session_id>123456789</session_id>
</widget_conclusion>
método de servicio: Clase
public string WidgetConclusion(ConclusionMessage message)
{
var priceRetail = message.PriceRetail;
}
mensaje:
[DataContract(Name = "widget_conclusion", Namespace = "")]
public class ConclusionMessage
{
[DataMember(Name = "list_criteria_id")]
public int CriteriaId { get; set;}
[DataMember(Name = "list_type")]
public string ListType { get; set; }
[DataMember(Name = "qty")]
public int ListQuantity { get; set; }
[DataMember(Name = "price_retail")]
public decimal PriceRetail { get; set; }
[DataMember(Name = "price_wholesale")]
public decimal PriceWholesale { get; set; }
[DataMember(Name = "session_id")]
public string SessionId { get; set; }
}
Buena respuesta. Intenté en ambos sentidos y el comportamiento es exactamente el que describes. Siempre es una experiencia humilde perderse las cosas simples. Estoy interesado en por qué los DataContracts predeterminan el orden alfabético. Parece que sería más declarativo mantener el orden de la declaración ... pero supongo que el suministro del atributo Orden es el más declarativo. –
Sí. He convertido en práctica la costumbre de declarar siempre el pedido de forma explícita, lo cual hace las cosas mucho más fáciles más adelante. – tomasr
¿Hay algún otro serializador (que no sea el XmlSerializer antedeluvio) que no tenga este comportamiento de cabeza hueca? Porque si quisiera ese tipo de deserialización rígida hiper-estricta, solo usaría binario. – Pxtl