如何将可序列化对象保存/还原到文件中?

如何将可序列化对象保存/还原到文件中?

我有一个对象列表,我需要把它保存在我的计算机的某个地方。我读过一些论坛,我知道对象必须是Serializable..不过,如果我能举个例子的话,那就太好了。例如,如果我有以下内容:

[Serializable]public class SomeClass{
     public string someProperty { get; set; }}SomeClass object1 = new SomeClass { someProperty = "someString" };

但是我怎么才能储存object1在我电脑里的某个地方然后再检索?


蝴蝶刀刀
浏览 617回答 3
3回答

智慧大石

您需要序列化到某些内容:即选择二进制或XML(用于默认序列化程序)或编写自定义序列化代码来序列化为其他文本形式。一旦您选择了它,您的序列化将(通常)调用一个流,它正在写入某种类型的文件。因此,在使用您的代码时,如果我使用的是XML序列化:var path = @"C:\Test\myserializationtest.xml";using(FileStream fs = new FileStream(path, FileMode.Create)){     XmlSerializer xSer = new XmlSerializer(typeof(SomeClass));     xSer.Serialize(fs, serializableObject);}然后,反序列化:using(FileStream fs = new FileStream(path, FileMode.Open)) //double check that...{     XmlSerializer _xSer = new XmlSerializer(typeof(SomeClass));     var myObject = _xSer.Deserialize(fs);}注意:这段代码还没有编译,更不用说运行了-可能有一些错误。此外,这假定完全开箱即用的序列化/反序列化。如果您需要自定义行为,则需要进行额外的工作。
打开App,查看更多内容
随时随地看视频慕课网APP