将可变数据保存到磁盘

时间:2012-04-19 14:11:47

标签: c# .net xna

是否可以将C#中的变量保存到磁盘,以便以后能够在项目的另一个实例中使用它?

例如,我有一个包含3个字段的结构,如下例所示:

struct MyStruct
{
    byte[] ByteData;
    int MyInt;
    double MyDouble;
};

我有一个这个结构的实例,让我们说MyStruct S并为我的所有字段赋值。 在这一步之后,我想以某种方式将此变量保存在磁盘中,以便我可以在程序中稍后使用这些存储的值。

我知道,我可以将这些值复制到.txt文件中,但是我想将变量保存在我的磁盘上,这样我就可以在项目的下一个运行时将其直接加载到内存中。 / p>

是否有可能以某种方式将其保存在磁盘上,以便我可以将其加载到我的程序中?

3 个答案:

答案 0 :(得分:6)

public void SerializeObject<T>(string filename, T obj)
   {
      Stream stream = File.Open(filename, FileMode.Create);
      BinaryFormatter binaryFormatter = new BinaryFormatter();
      binaryFormatter.Serialize(stream, obj);
      stream.Close();
   }

   public T DeSerializeObject<T> (string filename)
   {
      T objectToBeDeSerialized;
      Stream stream = File.Open(filename, FileMode.Open);
      BinaryFormatter binaryFormatter = new BinaryFormatter();
      objectToBeDeSerialized= (T)binaryFormatter.Deserialize(stream);
      stream.Close();
      return objectToBeDeSerialized;
   }

[Serializable]
struct MyStruct
{
    byte[] ByteData;
    int MyInt;
    double MyDouble;
}

不要忘记将对象标记为可序列化。

答案 1 :(得分:2)

您可以使用序列化,请查看此MSDN链接Serialization

默认序列化选项为binaryXML

答案 2 :(得分:2)