是否存在类似于数据库的序列化方法

时间:2010-07-03 05:33:02

标签: c# serialization

到目前为止,我在网上找到的所有序列化示例都与将数组或列表存储在文件中有关。每类对象都必须序列化为自己的文件,例如“.bin”。我的问题的根源是我希望将我的产品本地信息存储起来,但我很习惯使用sql。我很难想象如何在本地存储信息。如果C#是像asp这样的东西我应该能够连接到Access数据库,但这几乎违背了序列化的一个想法,即用户不可读性。是否存在类似于使用表和字段的序列化方法,或者至少允许您将所有用户信息存储在一个文件中?

2 个答案:

答案 0 :(得分:1)

结帐NHibernate。这将为您提供“类似数据库”的存储空间。

如果您追求的是人类可读性,请考虑使用XML序列化您的对象。 .Net对使用XML和二进制格式序列化(和反序列化)对象提供了不错的支持。

我在C#中用于学习序列化的教程是this CodeProject article

<强>更新

我误解了你提出的一点:序列化并不一定意味着人类可读或不是 - 如果你决定序列化,弄清楚你是否想要数据是否可读。二进制序列化可能更紧凑,更不易读。

答案 1 :(得分:1)

您可以使用在本地序列化和存储的ADO.NET DataSet。它将包含您熟悉的所有数据结构,并允许您以您希望的方式查询数据,如果使用二进制序列化器对其进行序列化,则最终用户将无法读取它。

此外,您可以将SQLite视为使用DataSet的替代方法。

  

SQLite是一个软件库   实现一个独立的,   无服务器,零配置,   事务性SQL数据库引擎。   SQLite是部署最广泛的SQL   世界上的数据库引擎。该   SQLite的源代码在   公共领域。

使用SQLite的NHibernate也是一个很好的组合。

干杯。