Phone 7 的 XML 序列化 Root 重複 - 使用 Isolated Storage Explorer 確認

Phone 7 的 XML 序列化注意事項 - 使用 Isolated Storage Explorer 確認

之前寫了序列化來當做資料暫存,並放在 Isolated Storage

 

想說這種寫過很多遍都沒問題的程式

 

居然操作不到 5 分鐘就搞到掛 Orz 

 

image

一直出現 Root 重複的錯誤訊息! ( 這是一時為了 Debug 先輸出到 Messagebox 上 )

 

image

想說 序列化不就一行?而且怎麼會有,剛剛可以現在不行的情況

 

中間為了 Debug 看一下內容,還想說要自已輸出內容

 

還好依稀記得有工具可以處理!

 

 

======    WP7 Isolated Storage Explorer =========

下載位置

http://wp7explorer.codeplex.com/releases/view/61282

 

這個非常方便!! 只要啟動程式後 ( F5 )

image

就可以看到 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」

image

直接在「檔案名稱」將上面的路徑貼上—>Enter後,就可以直接到此目錄了!

 

二、啟用 Agent 通知

 

分別在 Launching 和 Activated 加入底下的程式

image

這裡要特別注意要填入 Localhost 或是 DNS 名稱

若是打錯就會出現 SOAP 的 Error 了! 

 

image

 

這樣子就大功告成啦!!

 

啟動程式後就可以看到

 

image

這樣子的結果!

 

馬上把 XML 檔案 Download 下來 ( 從遠端的Phone 中下載)

 

image

這裡就馬上知道為什麼會出錯了!

 

而且也很容易模擬出同樣的操作步驟

 

image

主要的原因是出在 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」