2010-07-03 58 views
4

到目前爲止,我在Web上發現的所有序列化示例都與將數組或列表存儲在文件中有關。每類對象都必須被序列化到他們自己的文件中,比如「.bin」。我的問題的根源在於我希望將本地產品的信息存儲在本地,但我非常習慣於使用sql。我很難想象如何在本地存儲信息。如果C#與asp類似,我應該可以連接到Access數據庫,但這幾乎違背了用戶不可讀性的序列化思想之一。是否有序列化方法類似於使用表和字段,或者至少允許您將所有用戶信息存儲在一個文件中?是否有一種類似於數據庫的序列化方法

回答

1

您可以使用序列化並存儲在本地的ADO.NET數據集。它將包含您熟悉的所有數據結構,並允許您按照您希望的方式查詢數據,並且如果您使用Binary Serializer對其進行序列化,最終用戶將無法讀取它。

此外,你可以看看SQLite作爲使用數據集的替代方案。

SQLite是一個軟件庫, 實現了一個自包含的,無服務器 ,零配置,事務性 SQL數據庫引擎。 SQLite是世界上部署最廣泛的SQL數據庫引擎。 SQLite的 源代碼位於公共域 中。

NHibernate與SQLite是一個很好的組合。

乾杯。

1

退房NHibernate。這會給你「類似數據庫」的存儲空間。

如果它是人類可讀性,那麼請考慮使用XML序列化對象。 .Net對使用XML和二進制格式序列化(和反序列化)對象有相當的支持。

我用於在C#中學習序列化的教程是this CodeProject article

更新:

我誤解你做一點:序列化並不一定意味着人類可讀與否 - 如果你決定序列,找出你想要的數據可讀與否。二進制序列化可能更緊湊,可讀性更差。

+0

他提到序列化的好處之一是**非可讀性。 – 2010-07-03 06:00:32

+0

序列化並不意味着數據可讀或不可讀。我使用的是序列化技術,它們都是可讀的,而不是。如果OP擔心保護序列化數據,則應使用加密或至少基本混淆。 – 2010-07-03 16:39:57

相關問題