Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, anton_nix, Вы писали:
_>>Почему Dictionary десериализуется в последнюю очередь и как с этим бороться? Мне надо сделать словарь, у которого ключ — тоже словарь, а я не могу его десериализовать
_>>При десериализации в конструкторе MyDictionary извлекаемые MyKey пустые!
S>1. А зачем ты взялся делать сериализацию словаря вручную? Стандартная не работает?
S>2. Если взялся делать сериализацию вручную — надо было идти до конца, т.е. реализовывать конструктор вручную.
Показалось странным, что словарь так странно десериализуется.
S>3. Если уж совсем не терпится — вызови OnDeserialization у прочитанных из потока MyKey:
Интересно, почему десериализация в этом методе?
S>S>protected MyDictionary(SerializationInfo info, StreamingContext context)
S>{
S> int count = info.GetInt32("count");
S> for (int i = 0; i < count; ++i)
S> {
S> MyKey key = (MyKey)info.GetValue(i + "key", typeof(MyKey));
S> key.OnDeserialization(this);
S> int value = info.GetInt32(i + "value");
S> Add(key, value);
S> }
S>}
S>
Огромное спасибо!