2014-07-18 27 views
0

我正在創建一個WP8購物清單應用程序,用於存儲用戶創建的清單(在我的代碼中,每個購物清單都定義爲我定義的ListObj)。我想通過.xml文件保存用戶創建的列表。只要我繼續添加到這個ListObj列表中,我似乎沒有任何問題。但是當我想從列表中刪除ListObj時,我開始遇到麻煩。當我重新打開我的應用程序後,我從我的ListObj的列表中刪除的東西,並試圖在啓動時加載我的名單,我進入這個try/catch塊:WP8:丟失數據或在獨立存儲中訪問XML文件

try 
{ 
    using (IsolatedStorageFile appStorage = 
      IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
    if (appStorage.FileExists("rootList.xml")) 
    { 
     using (IsolatedStorageFileStream isStream = 
       appStorage.OpenFile("rootList.xml", 
            FileMode.Open, FileAccess.Read)) 
     { 
     XmlSerializer serializer = new XmlSerializer(typeof(List<ListObj>)); 
     rootList = (List<ListObj>)serializer.Deserialize(isStream); 
     } 
    } 
    else 
    { 
     rootList = new List<ListObj>(); 
     Debug.WriteLine("rootList not found."); 
    } 
    } 
} 
catch 
{ 
    ///Uhhh.... 
} 

然而,我的程序執行中什麼也沒有發生catch語句明顯。我不確定在這個catch塊中執行什麼來診斷我的問題。我認爲我失去了訪問應用程序的隔離存儲空間,但我仍然不確定如何繼續。有任何想法嗎?

+0

如果你改變你的catch來捕捉(Exception ex),什麼是異常消息? – Jedidja

+0

爲了調試目的暫時刪除'try-catch',以便您可以看到更詳細的錯誤消息 – har07

+0

異常消息: mscorlib.ni.dll中發生類型爲'System.Reflection.TargetInvocationException'的異常,並且在託管/本機邊界 mscorlib.ni.dll中發生類型爲「System.IO.FileNotFoundException」的異常,並且未在託管/本機邊界之前處理 System.Xml中發生第一次機會類型爲「System.InvalidOperationException」的異常.Serialization.ni.dll System.Xml.Serialization.ni.dll中發生類型'System.InvalidOperationException'的異常,但未在用戶代碼中處理 –

回答

0

所以我最終找到了解決我的問題。事實證明,我修改我的.xml文件的方式會導致無法再讀取的錯誤。我通過使用修改的數據完全覆蓋我的文件來解決此問題,而不是嘗試更改現有數據。

相關問題