2

カスタムクラスがあり、アプリケーションを非アクティブ化しながらオブジェクトを保存したい.String、intなどの通常のタイプは、状態を保存し、電話アプリケーションページの状態を使用して元に戻すことができました.私はmyclassを作成する必要があると思います.シリアライズ可能として、オブジェクト(MyCustomObject)を保存し、オブジェクトの状態を復元するときに問題に直面できないようにします。

System.xml.serialization を使用してみました。また、JesseLiberty ブログで提案されているように [DataContract] を使用してみました。これを使用しようとすると、問題が発生しました。適切かどうか。

誰でもこの問題を解決できますか。

4

2 に答える 2

0

このヘルパーメソッドを使用しており、さまざまな種類のデータ(カスタムオブジェクトも)を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 に答える