J'ai donc la méthode suivante :
private int? myIntField
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public int? IntField{
get {
return this.myIntField;
}
set {
this.myIntField= value;
}
}
Maintenant, je désérialise le xml d'un message, si pour une raison quelconque je reçois une chaîne de caractères, comme "voici le champ int : 55444" au lieu de 55444, l'erreur que je reçois en réponse est : Input string was not in a correct format.
ce qui n'est pas très précis, surtout si l'on considère que j'aurai plus d'un champ int à vérifier.
A l'origine, j'avais prévu quelque chose comme ça :
private string myIntField
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public int? IntField{
get {
return this.myIntField.CheckValue();
}
set {
this.myIntField= value;
}
}
Où CheckValue effectue un try-parse
à un Int32, et si elle échoue elle retourne un null et ajoute une erreur à une liste. Cependant, je ne parviens pas à mettre en place cette configuration pour les classes générées.
Existe-t-il un moyen d'envoyer une erreur spécifique si je reçois des chaînes de caractères à la place d'entrées, de dates, etc.