2011-10-27 2 views
0

nous avons un objet généré à partir de l'exécution de l'xsd.exe qui a la propriété suivante avec le champ de support:C# généré sérialisation d'objets XSD de datetime

private System.DateTime deliveryDateField; 

/// <remarks/> 
public System.DateTime DeliveryDate 
{ 
    get 
    { 
     return this.deliveryDateField; 
    } 
    set 
    { 
     this.deliveryDateField = value; 
    } 
} 

cela est générée à partir de:

<xs:element name="DeliveryDate" type="xs:dateTime" minOccurs="0"/> 

qui Je suis en train de sérialiser en utilisant:

var t = new Transaction(); 
t.DeliveryDate = new DateTime(2011,11,11); 
var xs = new XmlSerializer(t.GetType()); 

string outString; 

using (var ms = new MemoryStream()) 
{ 
    xs.Serialize(ms, t); 
    ms.Position = 0; 
    using (var sr = new StreamReader(ms)) 
    { 
     outString = sr.ReadToEnd(); 
    } 
} 
return outString; 

quelle que soit la valeur que je lui ai donnée est gettin g perdu sur le processus de sérialisation alors que d'autres éléments sont bien. Que dois-je faire pour obtenir cette sérialisation correctement?

Merci

Répondre

3

Vous avez probablement aussi une propriété appelée DeliveryDateSpecified votre classe de transaction? C'est parce que votre DeliveryDate n'est pas obligatoire. Si vous définissez cette valeur sur true, votre DeliveryDate sera également sérialisé.

+0

Ahhh Merci Je n'avais aucune idée que j'avais besoin de faire cela mais cela a un sens parfait – bobwah

+0

XmlSerializer utilise la propriété spécifiée pour déterminer si une propriété non nullable doit être sérialisée. –

Questions connexes