我正在編寫一個應用程序,它將用戶數據存儲在本地以供以後使用。應用程序將經常啓動和停止,並且我想讓它在應用程序的開始/結束時保存/加載數據。在.NET中本地存儲數據的最佳方式(C#)
如果我使用平面文件,這將是相當直接的,因爲數據並不需要保護(它只會存儲在這臺PC上)。我相信,這些選項是這樣的:
- 平面文件
- XML
- SQL數據庫
平面文件需要多一點的努力,以保持(無內置類像XML),但我之前沒有使用過XML,對於這個相對簡單的任務來說,SQL似乎過分了。
有沒有其他的途徑值得探索?如果不是,哪個是最好的解決方案?
編輯:要多一點數據添加到這個問題,基本上我想保存的唯一的事情是,看起來像這樣
Dictionary<string, List<Account>>
其中帳戶是另一個自定義類型的字典。
我會序列化字典作爲xmlroot,然後帳戶類型作爲屬性?
更新2:
所以這是可能的序列化的字典。讓它變得複雜的是,這個字典的值是一個通用本身,它是一個Account類型的複雜數據結構列表。每個帳戶都相當簡單,只是一堆屬性。
這是我的理解是這裏的目標是嘗試這樣結束了:
<Username1>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
</Username1>
<Username2>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
<Account2>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account2>
</Username2>
正如你可以看到heirachy是
- 用戶名(字典的字符串)>
- 帳戶(列表中的每個帳戶)>
- 帳戶數據(即類屬性)。
從Dictionary<Username, List<Account>>
獲取此佈局是棘手的問題,也是這個問題的實質。
這裏有很多關於序列化的'如何做'的迴應,這是我的錯,因爲我沒有在早期就更清楚,但現在我正在尋找一個明確的解決方案。
給予更多ditails的那種應用程序和數據存儲,也excpected sizr – 2009-12-21 19:03:51
序列化的字典:http://stackoverflow.com/questions/1111724 – Cheeso 2009-12-21 19:28:37