Перед завершением анализа был обнаружен конечный поток
Это снова я, и у меня есть другая проблема. Где-то я нашел следующий код:
private T DeepDeserialize<T>(string fileName)
{
T returnValue;
using (FileStream str = new FileStream(fileName, FileMode.Open))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
returnValue = (T)binaryFormatter.Deserialize(str);
}
return returnValue;
}
Сегодня я изменил некоторые классы, и теперь он всегда выдает ошибку, которую можно перевести так: Before completing the analysis was detected ending stream
(Я не знаю правильный перевод, сообщение об ошибке на моем языке, а не на английском)
Я пытался вставить str.Position = 0;
между этими двумя линиями в using
, который я нашел где-то здесь, но это не помогает.
Может кто-нибудь помочь мне заставить это работать снова? Понятия не имею, что делать...
1 ответ
Вы изменили двоичный формат ваших файлов, но, скорее всего, пытаетесь десериализовать старые файлы. Это не сработает. Сначала вы должны сериализовать новые версии.
PS Если вы рассмотрите возможность создания версий и пользовательского форматера на ранних этапах, вы сможете десериализовать старые данные с новыми классами, в зависимости от того, насколько радикальными были ваши изменения