为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
蝴蝶刀刀 2019-07-10 15:43:39
如何将可序列化对象保存/还原到文件中?我有一个对象列表,我需要把它保存在我的计算机的某个地方。我读过一些论坛,我知道对象必须是Serializable..不过,如果我能举个例子的话,那就太好了。例如,如果我有以下内容:[Serializable]public class SomeClass{      public string someProperty { get; set; }}SomeClass object1 = new SomeClass { someProperty = "someString" };但是我怎么才能储存object1在我电脑里的某个地方然后再检索?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超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);}

注意:这段代码还没有编译,更不用说运行了-可能有一些错误。此外,这假定完全开箱即用的序列化/反序列化。如果您需要自定义行为,则需要进行额外的工作。


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 616 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信