J'ai créé un fichier de classe C# en utilisant un fichier XSD comme entrée. L'une de mes propriétés ressemblent à ceci:Sérialisation DateTime à heure sans millisecondes et gmt
private System.DateTime timeField;
[System.Xml.Serialization.XmlElementAttribute(DataType="time")]
public System.DateTime Time {
get {
return this.timeField;
}
set {
this.timeField = value;
}
}
Lorsque sérialisé, le contenu du fichier ressemble maintenant à ceci:
<Time>14:04:02.1661975+02:00</Time>
Est-il possible, avec XmlAttributes sur la propriété, de l'avoir rendu sans les millisecondes et la valeur GMT comme ça?
<Time>14:04:02</Time>
Est-ce possible, ou ai-je besoin de pirater ensemble une sorte de xsl/XPath remplacer la magie après la classe a été publié en feuilleton?
Ce n'est pas une solution de changer l'objet en chaîne, car il est utilisé comme un DateTime dans le reste de l'application et nous permet de créer une représentation XML à partir d'un objet en utilisant la méthode XmlSerializer.Serialize() .
La raison pour laquelle je dois retirer les informations supplémentaires du champ est que le système de réception n'est pas conforme aux normes w3c pour le type de données de temps.
Regardez http://stackoverflow.com/questions/3534525/force-xmlserializer-to-serialize-datetime-as-yyyy-mm-dd-hhmmss – TNT