Ceci est la continuation de How to set [DataMember] on all class memberserreur de sérialisation DataContract
Je dois sérialiser une classe avec des dictionnaires et d'autres membres.
Je chonse la sérialisation datacontext que le Se
public SimpleDataGridSample()
{
if (false)
{
MyClass theclass = new MyClass();
var serializer = new DataContractSerializer(typeof(MyClass));
using (Stream fileStream = File.Open("aaa.bin", FileMode.Create))
{
XmlDictionaryWriter binaryDictionaryWriter = XmlDictionaryWriter.CreateBinaryWriter(fileStream);
serializer.WriteObject(binaryDictionaryWriter, theclass);
binaryDictionaryWriter.Flush();
}
}
else
{
MyClass theclass;
var serializer = new DataContractSerializer(typeof(MyClass));
using (Stream fileStream = File.Open("aaa.bin", FileMode.Open))
{
XmlDictionaryReaderQuotas xq = new XmlDictionaryReaderQuotas();
XmlDictionaryReader binaryDictionarReader = XmlDictionaryReader.CreateBinaryReader(fileStream, xq);
theclass = (MyClass)serializer.ReadObject(binaryDictionarReader);
}
}
}
}
et qui a fonctionné.
Mais c'était juste un programme de test. Lors de l'application de ma classe qui est plus compliqué je reçois cette erreur:
{"Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"}
ne peut pas comprendre ce que l'indice parle.
La classe principale est composée de membres serveral (également des dictionnaires et des listes observables) et d'autres sous-classes. Chaque classe est marquée [DataContract(IsReference = true)]
et chaque membre est marqué [DataContext]
Thanx