我试图在C#上学习二进制序列化,所以我设置了一个演示:
var b = new BinaryFormatter();
Person p1 = new Person(8, "josh");
Stream s = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);
b.Serialize(s, p1);
var p2 = (Person)b.Deserialize(s);
p2.ToString();
s.Close();
path
是在程序运行前不存在的文件的有效地址。
当我运行程序时出现异常:
End of Stream encountered before parsing was completed
但是创建了带有序列化对象的文件(来自类型txt
)。
从调试器中,我了解到错误的来源是反序列化语句。我试图在序列化和反序列化之间等待task.delay
一秒钟,但仍然没有运行。
您能找出问题所在吗?