2010-09-25 69 views
1

嘿大家。我正在創建一個目錄應用程序,用戶在汽車上添加/下載信息。這可能導致數百甚至數千輛汽車及其數據(品牌,型號,年份,圖片等)。看到WP7沒有數據庫,我正在使用XML。我的問題是,將每個對象存儲在列表中,然後序列化整個列表是否有效?當用戶加載應用程序時,整個列表被反序列化並且每個對象都被實例化。有沒有更好的方法來做到這一點?謝謝。XML序列化 - 高效?

ps - 我遇到過DataContractSerializer,但不確定是否應該使用它,因爲它似乎與WCF相關(並且我沒有在我的應用程序中使用WCF)。

+0

您可能想檢查我的問題:http://stackoverflow.com/questions/3790728/performance-tests-of-serializations-used-by-wcf-bindings – Ben 2010-09-25 15:22:52

+2

DCS可以使用**或不使用** WCF很開心。但真正的問題是:什麼是有效的*足夠的*?你有沒有先試過最簡單的東西,看看它是否有問題?哦,和protobuf網工作在WP7 :) – 2010-09-25 15:28:59

+0

感謝您的幫助。我沒有嘗試過這麼做,但我認爲應該避免在啓動時實例化每個對象。我會更多地關注DataContracts以及我認爲他們是WCF特定的。 – Brap 2010-09-25 17:24:39

回答

1

只要這樣做,看看。除非這方面的每一個方面對你來說都是全新的,否則它應該花費更少的時間來進行原型和測試,而不需要像在SO上討論它 - 特別是因爲SO討論的最終結果可能會有人告訴我們你來原型和測試它。

如果速度太慢,那麼您可以查看替代方法 - 使用不同類型的序列化方法,在啓動時部分反序列化對象以啓動UI並運行,然後在後臺繼續進行反序列化,或者其他操作。

+0

感謝您的答覆。我將在明天做系列化工作,但希望有人可以從WP7的經驗中得到一些建議。有一件事,如果將對象存儲在列表中,你將如何部分反序列化對象?有限制它的方法嗎? – Brap 2010-09-25 21:38:07

+0

有很多不同的方法。最簡單最簡單的方法是將您的數據分成小塊和大塊,將小塊反序列化,初始化UI,然後在背景中對大塊進行反序列化。或者你可以實現一個解析輸入流的'XmlReader'子類,並在每次解析完整記錄時引發一個事件,該事件包含它解析的最後一條記錄的XML。或者......好吧,我在這裏試圖解決一個問題,甚至不知道它存在。 – 2010-09-26 05:57:58