保存&加载通用数据WinPhone8.1 C#

时间:2014-09-01 12:04:07

标签: c# windows-phone-8.1

首先,我正在开发一个 WindowsPhone8.1 应用程序,该应用程序具有来自Web的JSON(名称,电话号码,电子邮件-...)文件。我将这个JSON数据存储在一个列表中(contact是一个具有JSON参数的类。

我想在我的WindowsPhone上存储(本地无云)此列表(它是带有标记收藏夹的列表,而不是整个列表)。

我尝试使用StorageFolder和StorageFile,遗憾的是,我失败了。删除和加载文件时遇到问题。

使用C#,Xaml在Microsoft Visual Studio Premium 2013 Update 3中进行开发。

1 个答案:

答案 0 :(得分:2)

我使用这个类,你需要通过nuget提供的Json包。

 class StorageService : IConfigurationService
        {
            readonly StorageFolder _local = ApplicationData.Current.LocalFolder;

            public async void Save<T>(string key, T obj)
            {
                var json = JsonConvert.SerializeObject(obj);


                var dataFolder = await _local.CreateFolderAsync("DataFolder",
            CreationCollisionOption.OpenIfExists);
                var file = await dataFolder.CreateFileAsync(key,
        CreationCollisionOption.ReplaceExisting);
                await FileIO.WriteTextAsync(file, json);
            }

            public async Task<T> Load<T>(string key)
            {
                try
                {
                    var dataFolder = await _local.GetFolderAsync("DataFolder");
                    var file = await dataFolder.OpenStreamForReadAsync(key);

                    string json;
                    using (var streamReader = new StreamReader(file))
                    {
                        json = streamReader.ReadToEnd();
                    }

                    return JsonConvert.DeserializeObject<T>(json);
                }
                catch (Exception)
                {
                    return default(T);
                }

            }


        }