Problème de Serialization XML : Les longs et les datetimes de ma classe partielle ne se sérialisent pas.
Bonjour :(,
J'essaye de sérialiser une instance d'une classe partielle (issue d'xsd) avec le xmlserializer, mais la sérialisation ignore les attributs de type long et datetime de mon instance.
Ci joint le code de la classe partielle "contact".
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class contact
{
private long contactidField;
private bool contactidFieldSpecified;
private long versionField;
private bool versionFieldSpecified;
private System.DateTime updatedtField;
private bool updatedtFieldSpecified;
private string firstnameField;
private string lastnameField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public long contactid
{
get
{
return this.contactidField;
}
set
{
this.contactidField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool contactidSpecified
{
get
{
return this.contactidFieldSpecified;
}
set
{
this.contactidFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public long version
{
get
{
return this.versionField;
}
set
{
this.versionField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool versionSpecified
{
get
{
return this.versionFieldSpecified;
}
set
{
this.versionFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "date")]
public System.DateTime updatedt
{
get
{
return this.updatedtField;
}
set
{
this.updatedtField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool updatedtSpecified
{
get
{
return this.updatedtFieldSpecified;
}
set
{
this.updatedtFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string firstname
{
get
{
return this.firstnameField;
}
set
{
this.firstnameField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string lastname
{
get
{
return this.lastnameField;
}
set
{
this.lastnameField = value;
}
}
} |
Voilà la fonction et le programme de sérialisation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
static void Main(string[] args)
{
contact c = new contact();
c.contactid = 1;
c.version = 1;
c.updatedt = DateTime.Now;
c.firstname = "Alain";
c.lastname = "Delon";
Serialize(c, "mythomane.xml");
}
static void Serialize(contact c, String filename)
{
using (FileStream fsStream = new FileStream(filename, FileMode.Create))
{
XmlSerializer xsSerializer = new System.Xml.Serialization.XmlSerializer(typeof (contact));
xsSerializer.Serialize(fsStream , c);
}
} |
le fichier mythomane.xml est :
Code:
1 2 3 4 5 6
|
<?xml version="1.0"?>
<contact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<firstname>Alain</firstname>
<lastname>Delon</lastname>
</contact> |
Je sais pas comment faire pour avoir tous les attributs.
J'ai tombé sur ça en cherchant à résoudre le problème mais le problème persiste après le remplacement de unqualified par Qualified (solution de contournement proposée) . cf: http://support.microsoft.com/kb/327071
Merci d'avance :roll:
Naou