【问题标题】:Save & Load generic Data WinPhone8.1 C#保存和加载通用数据 WinPhone8.1 C#
【发布时间】:2014-09-01 12:04:06
【问题描述】:

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

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

我用 StorageFolder 和 StorageFile 尝试过,很遗憾,我失败了。删除和加载文件时出现问题。

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

【问题讨论】:

    标签: c# windows-phone-8.1


    【解决方案1】:

    我使用这个类,你需要通过 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);
                    }
    
                }
    
    
            }
    

    【讨论】:

    • 我想你误解了我的问题,我想保存 List 而不是 JSON。如果我错了,请纠正我。
    • 您不能按原样保存对象。您应该先将其序列化为 json/xml/whatever,然后将其作为字符串保存到文件中。
    • 你也知道删除文件夹中所有文件的方法吗?
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2021-10-19
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多