在我目前正在研究的項目中,需要將相當大的數據結構保存到磁盤(編輯:想幾十MB)。作爲一個樂觀主義者,我認爲對於這樣一個問題必須有一個標準的解決方案。然而,到現在爲止我還沒有找到滿足以下要求的解決方案:版本控制友好的,可擴展的二進制文件格式
- .NET 2.0的支持,最好用FOSS實施
- 友好的版本(這應該被解釋爲:閱讀舊版本的格式應該相對簡單,如果基礎數據結構的變化很簡單,比如添加/刪除字段)
- 能夠做某種形式的隨機訪問,其中部分數據可以在初始創建之後進行擴展,而不需要將此時創建的集合反序列化(將此視爲擴展中間結果)
- 空間和時間效率(XML已經被排除在外,因爲選項給出這個要求)
選項至今認爲:
- XmlSerializer:由於XML序列化被拒絕了不符合要求的3和4
- SerializableAttribute:不支持要求2和3
- Protocol Buffers:通過對文檔的Large Data Sets的判決拒絕了 - 因爲這條評論建議增加另一層Ø這要求額外的複雜性,我希望通過文件格式本身來處理。
- HDF5,EXI:似乎不具有.NET實現
- SQLite/SQL Server Compact edition:手頭上的數據結構,將導致一個非常複雜的表結構,它顯得過於重量級達到預定可使用
- BSON:不似乎支持要求3.
- Fast Infoset:似乎只支付.NET實現。
任何建議或指針非常感謝。此外,如果您認爲上述任何信息不真實,請提供指示/示例來證明我錯了。
HDF5確實有一些.NET支持:http://www.hdfgroup.org/projects/hdf.net/ – 2010-03-29 20:47:14
@Richard Morgan Upto現在我只在hdfgroup.org上發現了關於.NET的死鏈接,謝謝。 – 2010-03-29 20:57:16
看着用hdf.net提供的例子,它的想法是.net使用不安全和自定義編組,沒有樂趣。 – 2010-03-29 21:48:12