下面是一個libarary稱爲Windows 8 Isolated storage,它使用XML序列化。您可以存儲object
以及List<T>
。用法也非常簡單。只需在您的項目中添加DLL並且您有存儲數據的方法。
public class Account
{
public string Name { get; set; }
public string Surname{ get; set; }
public int Age { get; set; }
}
保存在獨立存儲:從獨立存儲
Account obj = new Account{ Name = "Mario ", Surname = "Rossi", Age = 36 };
var storage = new Setting<Account>();
storage.SaveAsync("data", obj);
負載:
public async void LoadData()
{
var storage = new Setting<Account>();
Account obj = await storage.LoadAsync("data");
}
此外,如果你想存儲列表: 保存在獨立存儲列表:
List<Account> accountList = new List<Account>();
accountList.Add(new Account(){ Name = "Mario", Surname = "Rossi", Age = 36 });
accountList.Add(new Account(){ Name = "Marco", Surname = "Casagrande", Age = 24});
accountList.Add(new Account(){ Name = "Andrea", Surname = "Bianchi", Age = 43 });
var storage = new Setting<List<Account>>();
storage.SaveAsync("data", accountList);
加載孤立存儲列表:
public async void LoadData()
{
var storage = new Setting<List<Account>>();
List<Account> accountList = await storage.LoadAsync("data");
}
代碼似乎是正確的,但我試過了。應用程序啓動正確,但在運行時我收到此錯誤: 在mscorlib.dll中發生類型'System.Exception'的異常,但未在用戶代碼中處理 WinRT信息:嘗試序列化要寫入的值時出錯應用程序數據存儲 附加信息:不支持此類型的數據。 如果有這種異常的處理程序,程序可能會安全地繼續。 – cewrld
我遇到同樣的問題。看起來問題是,當試圖持久DateTime,因爲在C#中它不是一個運行時類型(DateTimeOffset是)...似乎方法是將DateTime轉換爲DateTimeOffset ...必須有一個更優雅的解決方案。在WP8 IsolatedStorage工作正常 –
var applicationData = Windows.Storage.ApplicationData。當前; var localSettings = applicationData.LocalSettings; –