Windows 8应用程序本地存储

我正在尝试使用C#开发Windows 8应用程序,我需要在本地设置中存储两个列表(string和DateTime)

List<string> names = new List<string>(); List<DateTime> dates = new List<DateTime>(); 

我使用LocalSettings根据此页面: http : //msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700361

 Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 

但是我在存储列表时遇到问题,并从保存的设置中获取它们。

你可以通过发送几行来帮助存储和检索stringList和DateTime列表types对象(或其他一些方法来存储这种types的数据)。

谢谢。

Solutions Collecting From Web of "Windows 8应用程序本地存储"

这里是一个名为Windows 8独立存储的 libarary,它使用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"); } 

请检查此示例,演示如何将集合保存到应用程序存储: http : //code.msdn.microsoft.com/windowsapps/CSWinStoreAppSaveCollection-bed5d6e6

试试这个存储:

 localSettings.Values["names"] = names localSettings.Values["dates"] = dates 

这写道:

 dates = (List<DateTime>) localSettings.Values["dates"]; 

编辑:它看起来像我是错的,你只能以这种方式存储基本类型。 所以你可能需要通过使用MemoryStream并保存其缓冲区来将所有内容序列化为byte []。