Как десериализовать или восстановить двоичный сериализованный словарь, который не закончил сериализацию? - PullRequest
2 голосов
/ 27 октября 2009

Когда я использовал свое приложение, при закрытии оно пыталось сериализовать словарь размером 300 КБ. Из-за отсутствия места на диске он мог записать только 292 КБ. Есть ли способ успешно десериализовать все, что там есть?

Я использовал BinaryFormatter, и если я потеряю некоторые элементы, это намного лучше, чем потеря всего словаря.

При десериализации я получаю это исключение:

    e.Message   "The input stream is not a valid binary format. The starting contents (in bytes) are: 20-01-20-20-20-FF-FF-FF-FF-01-20-20-20-20-20-20-20 ..."

1 Ответ

2 голосов
/ 27 октября 2009

Для разделения двоичных потоков действительно требуется много знаний о реализации. BinaryFormatter является частной собственностью, поэтому ... если эти данные не являются действительно ценными, может быть дешевле считать их потерянными. Вы можете сделать много скробблинга, но это будет непросто, а время разработки не из дешевых.

Я не говорю, что нельзя сделать, хотя. FWIW, я могу думать о способах сделать это для некоторых других сериализаторов - только не BinaryFormatter.

...