4

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

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

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

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

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

是否可以将它以某种方式保存在磁盘上,以便我可以将它按原样加载到我的程序中?

4

3 回答 3

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;
}

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

于 2012-04-19T14:15:08.873 回答
2

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

默认的序列化选项是binaryXML

于 2012-04-19T14:15:11.763 回答
2

对其进行序列化:http: //msdn.microsoft.com/en-us/library/et91as27.aspx

于 2012-04-19T14:15:17.203 回答