windows通用app隔离存储

时间:2016-03-02 19:11:23

标签: windows storage win-universal-app universal

我有这个独立的存储助手,我​​需要用它来保存和检索我的通用应用程序中的数据。 实际上,我不知道从哪里开始。我应该制作一个应用程序并将帮助程序类合并到其中吗? 这是我的班级,谢谢你的推荐

using System.IO;
//using System.IO.IsolatedStorage;
using System.Runtime.Serialization.Json;
using System.Text;
public static class IsolatedStorageHelper
{
    public static T GetObject<T>(string key)


    {
         var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;





        if (localSettings.Values.ContainsKey(key))
        {
            string serializedObject = localSettings.Values[key].ToString();
            return Deserialize<T>(serializedObject);
        }

        return default(T);
    }

    public static void SaveObject<T>(string key, T objectToSave)
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
        string serializedObject = Serialize(objectToSave);
        localSettings.Values[key] = serializedObject;
    }

    public static void DeleteObject(string key)
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
        localSettings.Values.Remove(key);
    }

    private static string Serialize(object objectToSerialize)
    {
        using (MemoryStream ms = new MemoryStream())
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(objectToSerialize.GetType());
            serializer.WriteObject(ms, objectToSerialize);
            ms.Position = 0;

            using (StreamReader reader = new StreamReader(ms))
            {
                return reader.ReadToEnd();
            }
        }
    }

    private static T Deserialize<T>(string jsonString)
    {
        using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
            return (T)serializer.ReadObject(ms);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用静态SaveObject方法并提供&#39;实体和一把钥匙。稍后使用GetObject检索它。

但我认为在这种情况下,您应该使用数据库sqlitesqlite net包来保存实体。