所以,我正在开发一个联系人管理系统,我正在尝试添加一个联系人。我决定从视图中获取数据,创建一个联系人,将其添加到列表中,然后序列化该列表,而不是在 ViewModel 之间跳转(联系人和主要联系人页面是分开的)。然后,当我返回主页时,我反序列化该列表。
当数据被添加到 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(); }
}
任何帮助或帮助将不胜感激。