Comment sérialiser dateTime

De travail pour obtenir DateTimes pour n'importe quel fuseau horaire.
Je suis en utilisant DateTimeOffset, et une chaîne, et un XmlElement attribut. Quand je le fais, j'obtiens l'erreur suivante:

[InvalidOperationException: 'dateTime'
est une valeur non valide pour l'
XmlElementAttribute.Propriété type de données.
dateTime ne peut pas être converti à
Système.Chaîne de caractères.]
Système.Xml.La sérialisation.XmlReflectionImporter.ImportTypeMapping(TypeModel
modèle de Chaîne de ns, ImportContext
le contexte, le type de données Chaîne,
XmlAttributes un, Boolean répète,
Boolean openModel, RecursionLimiter
limiteur) +450

[InvalidOperationException: Il n'y a
une erreur reflétant type
'Système.Chaîne'.]
Système.Xml.La sérialisation.XmlReflectionImporter.ImportTypeMapping(TypeModel
modèle de Chaîne de ns, ImportContext
le contexte, le type de données Chaîne,
XmlAttributes un, Boolean répète,
Boolean openModel, RecursionLimiter
limiteur) +1621
Système.Xml.La sérialisation.XmlReflectionImporter.ImportAccessorMapping(MemberMapping
accesseur, FieldModel modèle,
XmlAttributes une, Chaîne ns, Type
choiceIdentifierType, Boolean rpc,
Boolean openModel, RecursionLimiter
limiteur) +8750
Système.Xml.La sérialisation.XmlReflectionImporter.ImportFieldMapping(StructModel
parent, FieldModel modèle,
XmlAttributes une, Chaîne ns,
RecursionLimiter limiteur) +139
Système.Xml.La sérialisation.XmlReflectionImporter.InitializeStructMembers(StructMapping
cartographie, StructModel modèle Booléen
openModel, Chaîne typeName,
RecursionLimiter limiteur) +1273

[InvalidOperationException: Il n'y a
une erreur reflétant la propriété
'creationTimeX'.] ...

Code:

 [System.Xml.Serialization.XmlElement(ElementName = "creationTime",
      DataType="dateTime")]
 public string creationTimeX
    {
        get
        {
            return this.creationTimeField.ToString("yyyy-MM-ddTHH:mm:sszzz");
        }
        set
        {
            DateTimeOffset.TryParse(value, out this.creationTimeField);
        }
    }

[System.Xml.Serialization.XmlIgnoreAttribute()]
public System.DateTimeOffset creationTime
{
    get {
        return this.creationTimeField;
    }
    set {
        this.creationTimeField = value;
    }
}
Juste pour le record. Méfiez-vous des DateTimeOffset. Il y a quelques problèmes de sérialisation DateTimeOffset lors de l'utilisation de WCF la sérialisation.

OriginalL'auteur david valentine | 2008-11-21