2015-12-21 4 views
0

Это продолжение How to set [DataMember] on all class membersDataContract ошибка сериализации

Так что я должен сериализовать класс с словарями и другими членами.

Я chonse в DataContext сериализации, что С.Е.

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); 

     } 
     } 

    } 
    } 

и работал.

Но это была всего лишь тестовая программа. При применении в мой класс, который является более сложным, я получаю эту ошибку:

{"Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"} 

Не могу понять, что индекс говорит.

Основной класс состоит из серверных элементов (также словарей и наблюдаемых списков) и других подклассов. Каждый класс отмечен [DataContract(IsReference = true)] и каждый член отмечен [DataContext]

Thanx

ответ

0

ОК, что было НЕВОЗМОЖНО для других пользователей aswer. Сначала я не понимал, в чем проблема, потому что я никогда раньше не использовал сериализацию DataContract и не разбирался в ней. Но это работает! Что поставило меня на путь, было хорошим старым intellisense. Это переменная после ее создания и содержит исключение. Благодарю то же самое

enter image description here