J'ai un fichier XML que j'essaie de sérialiser dans un objet. Certains éléments sont ignorés.La sérialisation des contrats de données ne fonctionne pas pour tous les éléments
Mon fichier XML:
<?xml version="1.0" encoding="utf-8" ?>
<License xmlns="http://schemas.datacontract.org/2004/07/MyApp.Domain">
<Guid>7FF07F74-CD5F-4369-8FC7-9BF50274A8E8</Guid>
<Url>http://www.gmail.com</Url>
<ValidKey>true</ValidKey>
<CurrentDate>3/1/2010 9:39:28 PM</CurrentDate>
<RegistrationDate>3/8/2010 9:39:28 PM</RegistrationDate>
<ExpirationDate>3/8/2099 9:39:28 PM</ExpirationDate>
</License>
Ma définition de la classe:
[DataContract]
public class License
{
[DataMember]
public virtual int Id { get; set; }
[DataMember]
public virtual string Guid { get; set; }
[DataMember]
public virtual string ValidKey { get; set; }
[DataMember]
public virtual string Url { get; set; }
[DataMember]
public virtual string CurrentDate { get; set; }
[DataMember]
public virtual string RegistrationDate { get; set; }
[DataMember]
public virtual string ExpirationDate { get; set; }
}
Et ma sérialisation tentative:
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(string.Format(url));
string xml = Xmldoc.InnerXml;
var serializer = new DataContractSerializer(typeof(License));
var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xml));
License license = (License)serializer.ReadObject(memoryStream);
memoryStream.Close();
Les éléments suivants sont sérialisés:
- guid
- ValidKey
Les éléments suivants ne sont pas sérialisés:
- Url
- CurrentDate
- RegistrationDate
- ExpirationDate
Le remplacement des dates de chaîne dans le fichier xml par "blah" ne fonctionne pas non plus. Ce qui donne?
BTW, il serait probablement plus rapide de désérialiser 'XmlDoc.CreateNavigator(). ReadSubtree()'. Cela vous renverra un XmlReader sur votre document. –
Merci John, je vais vérifier ça! – splatto