我有一个自定义类,我想在停用应用程序时保存对象,正常类型如String,int,能够保存状态并使用Phone Application Page状态恢复它。我想,我应该将myclass设为serializable,这样我在保存对象(MyCustomObject)和恢复Object的状态时将无法面对这个问题。
我尝试使用System.xml.serialization,我尝试使用JesseLiberty博客中建议的[DataContract],再次当我尝试使用它时,我得到的问题我的网络框架工作是2.0,为此它需要3.0,我不知道是否合适。
任何人都可以在这个问题上提供帮助。
答案 0 :(得分: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");
答案 1 :(得分:0)
PageState
对象只是一个dictionary<string, object>
,它被序列化为XML。
如果要在其中存储对象,则需要能够序列化和反序列化它们。