if (buffer[0] == 1)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
MemoryStream recvms = new MemoryStream();
recvms.Write(buffer,0,r);
recvms.Position = 0;
File_Mode file_Mode = (File_Mode)formatter.Deserialize(recvms);
using (FileStream fileStream = new FileStream(file_Mode.Path, FileMode.OpenOrCreate, FileAccess.Write))
{
//fileStream.Write(buffer, 1, r - 1);
fileStream.Write(file_Mode.Buffer, 0, file_Mode.Buffer.Length);
}
1.确定是不是序列化与反序列化用的是否为同一种规则(方法)
2.确定是不是更改过某个已序列化的属性名的类型导致反序列化不匹配的错误,如果是这样,在序列化文件里删除这个错误或者更改过的内容即可
3.不确定问题的情况下删除序列化文件,重新序列化,并给反序列化添加捕获trycath