Phone 7 的 XML 序列化注意事項 - 使用 Isolated Storage Explorer 確認
之前寫了序列化來當做資料暫存,並放在 Isolated Storage
想說這種寫過很多遍都沒問題的程式
居然操作不到 5 分鐘就搞到掛 Orz
一直出現 Root 重複的錯誤訊息! ( 這是一時為了 Debug 先輸出到 Messagebox 上 )
想說 序列化不就一行?而且怎麼會有,剛剛可以現在不行的情況
中間為了 Debug 看一下內容,還想說要自已輸出內容
還好依稀記得有工具可以處理!
====== WP7 Isolated Storage Explorer =========
下載位置
http://wp7explorer.codeplex.com/releases/view/61282
這個非常方便!! 只要啟動程式後 ( F5 )
就可以看到 App 目前的 Isolated Storage 有那些檔案了
而且按右鍵後就可以將檔案下載到本機上!
什麼??Isolated Storage 不是只有自已的 Application 才能讀取嗎??
為什麼外面的程式可以看得到 ( Isolated Storage Explorer 是 WPF 寫 的 外掛 )
這是因為在 WP7 的 程式中放了 Agent ,讓程式可以將 Isolated Storage 的資料透過 SOAP 送到外面
做法很簡單!只要兩個步驟就搞定了!
一、在 WP 7 專案中將 Agent 引用
「C:\Program Files (x86)\WP7 Isolated Storage Explorer\Library」
直接在「檔案名稱」將上面的路徑貼上—>Enter後,就可以直接到此目錄了!
二、啟用 Agent 通知
分別在 Launching 和 Activated 加入底下的程式
這裡要特別注意要填入 Localhost 或是 DNS 名稱
若是打錯就會出現 SOAP 的 Error 了!
這樣子就大功告成啦!!
啟動程式後就可以看到
這樣子的結果!
馬上把 XML 檔案 Download 下來 ( 從遠端的Phone 中下載)
這裡就馬上知道為什麼會出錯了!
而且也很容易模擬出同樣的操作步驟
主要的原因是出在 FileMode 不可以用 OpenOrCreate
只要比原來的字串長度還要少就會出現上面 XML 會有重複 Root 元素
改成 Create 後就一切正常!
參考資料
Enabling isolated storage operations on your project
「http://wp7explorer.codeplex.com/documentation?referringTitle=Home#Enabling isolated storage operations on your project」