2

我有一个自定义类,我想在停用应用程序时保存对象,字符串、int 等普通类型能够保存状态并使用电话应用程序页面状态恢复它。我认为,我应该制作 myclass作为可序列化的,这样我在保存对象(MyCustomObject)和恢复对象状态时将无法面对这个问题。

我尝试使用 System.xml.serialization,并尝试按照 JesseLiberty 博客中的建议使用 [DataContract],当我再次尝试使用它时,我遇到了问题我的网络框架是 2.0,为此它需要 3.0,我不知道是否合适与否。

任何人都可以帮助解决这个问题。

4

2 回答 2

0

我正在使用这个 Helper 方法,我能够在 IsolatedStorage 中保存不同类型的数据(也包括自定义对象),并且可以轻松地检索它们。

//Helper method to save a key value pair in ISO store
    internal static void SaveKeyValue<T>(string key, T value)
    {
        if (IsolatedStorageSettings.ApplicationSettings.Contains(key))
            IsolatedStorageSettings.ApplicationSettings[key] = value;
        else
            IsolatedStorageSettings.ApplicationSettings.Add(key, value);
        IsolatedStorageSettings.ApplicationSettings.Save();
    }

//Helper method to load a value of type T associated with the key from ISO store
    internal static T LoadKeyValue<T>(string key)
    {
        if (IsolatedStorageSettings.ApplicationSettings.Contains(key))
            return (T)IsolatedStorageSettings.ApplicationSettings[key];
        else
            return default(T);
    }

这是这些辅助方法的示例用法。

//Save your custom objects whenever you want
SaveKeyValue<MyCustomClass>("customObjectKey", customObject);

//Load your custom objects after the re activation of app..or whenever you need
MyCustomClass customObject = LoadKeyValue<MyCustomClass>("customObjectKey");
于 2012-10-03T12:17:00.443 回答
0

PageState对象只是一个dictionary<string, object>,它被序列化为 XML。

如果要在其中存储对象,则需要能够序列化和反序列化它们。

于 2012-10-03T14:00:45.663 回答