Est-il possible de définir comment un DateTime doit être sérialisé/désérialisé en utilisant quelque chose de similaire à la balise XmlAttribute? Dans le passé, je voudrais faire le champ une chaîne, puis faire quelque chose comme ça dans le constructeur:Comment marquer un attribut XML DateTime avec XmlDateTimeSerializationMode?
this.DateField = XmlConvert.ToString(passedObject.Date, XmlDateTimeSerializationMode.Utc);
Cependant, je voudrais avoir fait le champ soit un DateTime et marquer en quelque sorte qu'il devrait être publié en feuilleton comme UTC:
[System.Xml.Serialization.XmlAttribute()] // XmlDateTimeSerializationMode tag here?
public DateTime DateField;
Comment est-ce que je ferais cela?
J'ai eu un problème avec les dates n'étant pas sérialisées en tant que Zulu (UTC) et c'était parce que les dates étaient _NOT_ UTC, même si je pensais qu'ils étaient. Vérifiez votre code à nouveau! Vous avez manqué certains appels SpecifyKind (..., ... UTC) nécessaires. (Juste une note pour la prochaine personne qui ne peut pas obtenir Z à virer à la fin de leurs dates sérialisées XML.) –
@ Mark Hurd Juste pour clarifier. Si j'utilise * XmlSerializer * pour désérialiser XML et que les valeurs * xs: dateTime * sont ajoutées au fichier XML, les propriétés * DateTime * auront leurs propriétés * DateTime.Kind * définies sur * DateTimeKind. Utc. * Est-ce correct? – RunnerRick
@RickRoth Je l'espère, mais je ne sais pas - notre application ne l'utilisait que pour la sérialisation. –