当前位置:  开发笔记 > 编程语言 > 正文

在C#中保存数据结构

如何解决《在C#中保存数据结构》经验,为你挑选了2个好方法。

我正在通过写一个家庭图书馆经理来学习C#.

我有一个BookController,它将书籍存储在数据结构中并对它们执行操作.

C#是否有办法将字典中的数据保存到本地文件(可能是XML格式)以便稍后加载,或者我是否必须自己编写?

保存和加载C#可用数据的最佳方法是什么?只需指出一个好的方向.



1> Marc Gravell..:

事实上,C#(语言)不知道任何有关序列,但.NET(框架)提供了很多的方法... XmlSerializer,BinaryFormatter,DataContractSerializer(.NET 3.0) -或有一些定制的序列化框架了.

使用哪个取决于您的要求; BinaryFormatter使用简单,但将程序集元数据信息刻录到文件中 - 使其不可移植(例如,您无法在Java中打开它).XmlSerializer并且DataContractSerializer主要是基于xml的,使它非常便携,但除非你压缩它,否则相当大.

一些专有的序列化器位于两者之间; protobuf-net是一个二进制格式化程序(非常密集的数据),但遵循数据格式的便携式标准(Google的协议缓冲区规范).这是否有用取决于您的方案.

典型代码(此处使用XmlSerializer):

        XmlSerializer ser = new XmlSerializer(typeof(Foo));
        // write
        using (var stream = File.Create("foo.xml"))
        {
            ser.Serialize(stream, foo); // your instance
        }
        // read
        using (var stream = File.OpenRead("foo.xml"))
        {
            Foo newFoo = (Foo)ser.Deserialize(stream);
        }



2> Ed S...:

查看Serialization和ISerializable接口

它允许您以可移植的形式保存对象的状态.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有