Je rencontre des problèmes lors de la sérialisation d'une instance immutable avec DataContractSerializer, car les propriétés de la classe que je numérote sont des setters manquants. Le problème est que je veux seulement sérialiser l'instance (juste pour qu'elle puisse être écrite dans un journal), et je n'aurai jamais besoin de la désérialiser. Y a-t-il un moyen de contourner ce comportement?Problèmes lors de l'utilisation de DataContractSerializer
La classe que je suis en train de sérialisation:
[DataContract]
public class Person
{
private readonly string _name;
[DataMember]
public string Name
{
get { return _name; }
}
public Person(string name)
{
_name = name;
}
}
Le code utilisé pour sérialiser la classe:
public string Serialize()
{
var serializer = new DataContractSerializer(typeof(Person));
StringBuilder stringBuilder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(stringBuilder)) {
serializer.WriteObject(writer, this);
}
return stringBuilder.ToString();
}
Merci beaucoup. J'aurais dû y penser avant de poster la question. :) – Patrik
ne sait pas si cela a changé mais dans .net 4.5.1 vous pouvez sérialiser et désérialiser les champs en lecture seule – serine