Здравствуйте, 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>>