Когда я пишу такой класс, он отлично сериализуется/десериализуется.
[Serializable]
public class Post
{
public string Subject { get; set; }
}
Однако, когда я использую приватное поле, десериализация существующих данных завершается ошибкой. Следующий класс больше не десериализует тему
[Serializable]
public class Post
{
private string subj;
public string Subject { get { return subj; } set { subj = value; } }
}
Я использую следующий фрагмент кода
var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bformatter.Serialize(stream, posts);
и наоборот.
Кто-нибудь может объяснить, почему это происходит?
BinaryFormatter
? Вы изменили имя поля и/или изменили поле+свойство на автоматически реализуемое-свойство (то, что показано в первом примере). Также: не используйтеBinaryFormatter
. Как обычно - person Marc Gravell   schedule 04.04.2018BinaryFormatter
. Обычно NewtonSoft.Json — лучший вариант. - person Camilo Terevinto   schedule 04.04.2018BinaryFormatter
, как рекомендуют другие. - person dbc   schedule 04.04.2018BinaryFormatter
- person Marc Gravell   schedule 04.04.2018