Re: Десериализация словаря словарей
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.10.07 09:52
Оценка: 1 (1)
Здравствуйте, anton_nix, Вы писали:

_>Почему Dictionary десериализуется в последнюю очередь и как с этим бороться? Мне надо сделать словарь, у которого ключ — тоже словарь, а я не могу его десериализовать


_>При десериализации в конструкторе MyDictionary извлекаемые MyKey пустые!

1. А зачем ты взялся делать сериализацию словаря вручную? Стандартная не работает?
2. Если взялся делать сериализацию вручную — надо было идти до конца, т.е. реализовывать конструктор вручную.
3. Если уж совсем не терпится — вызови OnDeserialization у прочитанных из потока MyKey:

protected MyDictionary(SerializationInfo info, StreamingContext context)
{
    int count = info.GetInt32("count");
    for (int i = 0; i < count; ++i)
    {
        MyKey key = (MyKey)info.GetValue(i + "key", typeof(MyKey));
        key.OnDeserialization(this);
        int value = info.GetInt32(i + "value");
        Add(key, value);
    }
}
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.