BinaryFormatter.Serialize无法正常工作

时间:2016-02-11 21:59:18

标签: c# serialization unity3d

我正在尝试将对象序列化为二进制文件。我正在使用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();

1 个答案:

答案 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或其他二进制格式化程序。