我正在尝试将对象序列化为二进制文件。我正在使用BinaryFormatter.Serialize来序列化对象,但是当我尝试调用它时,我在stream参数上得到一个解析器错误,"意外的符号`('在类,结构或接口成员声明中& #34;
这是我的代码:
my_class
错误已开启:
using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
public class Serializer{
Properties prop = new Properties ();
IFormatter f = new BinaryFormatter();
Stream s = new FileStream("Properties/prop.bin", FileMode.Create, FileAccess.Write, FileShare.None);
f.Serialize(s, prop);
s.Close();
}
我在这里遇到同样的错误:
f.Serialize(s, prop); //the error is on the 's'
如何修复这些错误?
这是我正在序列化的内容:
s.Close();
答案 0 :(得分:1)
您的代码需要位于函数内部。
public class Serializer{
public void Seralize()
{
Properties prop = new Properties ();
IFormatter f = new BinaryFormatter();
Stream s = new FileStream("Properties/prop.bin", FileMode.Create, FileAccess.Write, FileShare.None);
f.Serialize(s, prop);
s.Close();
}
}
但是我建议您避免BinaryFormatter
汇编版本更改可能会轻易破坏您的文件,而是使用XML或其他二进制格式化程序。