Dire que j'ai quelque chose comme:WCF DataContract problème de désérialisation avec des valeurs vides
[DataContract(Namespace="http://bla.bla")]
public class MyClass {
[DataMember] public long ResponseCode { get; set; }
[DataMember] public long Fee { get; set; }
}
et ce qui suit provient d'un canal:
<ns0:MyResult>
<ns2:ResponseCode xmlns:ns2="http://bla.bla">101</ns2:ResponseCode>
<ns2:Fee xmlns:ns2="http://bla.bla"></ns2:Fee>
</ns0:MyResult>
Je reçois l'erreur:
----> System.Xml.XmlException: La valeur '' ne peut pas être analysée comme le type 'Int64'. ----> System.FormatException: la chaîne d'entrée n'était pas dans un format correct.
Je ne comprends pas pourquoi. La valeur par défaut du paramètre IsRequired
de DataContract
est false
donc je m'attends à ce qu'il désérialise sans erreurs et initialise la valeur manquante avec des valeurs par défaut pour le type (zéro). Qu'est-ce que je rate?
voir ici: http://stackoverflow.com/questions/19656691/wcf-convert-empty-element-to-nullable-native-type/19681312#19681312 – Terry