0
所以,我正在開發一個聯繫人管理系統,我正在嘗試添加一個聯繫人。我沒有在ViewModels之間跳轉(聯繫人和主要聯繫人頁面是分開的),而是決定從視圖中獲取數據,創建聯繫人,將其添加到列表中,然後序列化該列表。然後,當我回到主頁面時,我將該列表反序列化。由於反序列化而獲取unauthorisedAccessException。 c#/ Windows phone 8.1
這個工作正常(沒有優化,這只是一個簡單的大學項目),因爲數據被添加到JSON文件中。我的問題是 - 當我回到主頁面時,由於我的流上出現UnauthorisedAccessException,列表不會更新。反序列化方法是:
private async void buildMyListWithJsonAsync(){
ObservableCollection<Contact> list = new ObservableCollection<Contact>();
try
{
string JSONFILENAME = "contacts.json";
string content = " ";
StorageFile File = await ApplicationData.Current.LocalFolder.GetFileAsync(JSONFILENAME);
using (IRandomAccessStream testStream = await File.OpenAsync(FileAccessMode.Read)){
using (DataReader dreader = new DataReader(testStream)){
uint length = (uint)testStream.Size;
await dreader.LoadAsync(length);
content = dreader.ReadString(length);
list = JsonConvert.DeserializeObject<ObservableCollection<Contact>>(content);
}
}
contactlist = new ObservableCollection<Contact>();
foreach (Contact c in list)
contactlist.Add(c);
}
catch (Exception e)
{ e.ToString(); }
}
任何幫助或援助,將不勝感激。
對不起,我不完全確定你在暗示我做什麼。該流除了當我返回...但是,當我使用相同的流來顯示應用程序啓動列表,它運行通過沒有錯誤。 – Adam 2015-03-19 18:02:35
我想我誤解你原來的帖子是由反序列化(或至少通過它的使用)引發的異常,而它聽起來像是第二次嘗試訪問文件時的文件許可事情,而第一次工作正常?如果是這樣,這聽起來像文件被以前的訪問保持,並需要一些明確的釋放。這個問題是否爲您解答:http://stackoverflow.com/a/11243593/4670514 – mcr 2015-03-19 22:58:14