Данные из IsolatedStorageSettings.ApplicationSettings исчезают по возвращении из захоронения - PullRequest
1 голос
/ 31 июля 2011

По возвращении из Tombstone данные в IsolatedStorageSettings.ApplicationSettings исчезли.

Буду очень признателен за любой совет или предложение.Спасибо.

Подробности:

Когда я пытаюсь сохранить в IsolatedStorageSettings.ApplicationSettings словарь, который отображает ключи STRING в значения OBJECT, после возвращения из tombstone все значения из изолированного хранилища исчезают.Если я не пытаюсь сохранить этот словарь, при возврате из Tombstone проблем не возникает.

Вот код:

[DataContract]
[KnownType(typeof(TestClass))]
public class TestClass
{
    [DataMember]
    public string Property1 { get; private set; }

    public TestClass(string prop1)
    {
        Property1 = prop1;
    }
}


public static void AddValuesToIsolatedStorage()
{
    IsolatedStorageSettings.ApplicationSettings["Key1"] = 1234;
    IsolatedStorageSettings.ApplicationSettings["Key2"] = "abcd";

    Dictionary<string, object> dict = new Dictionary<string, object>();
    dict.Add("the key", new TestClass("a"));

    // IsolatedStorageSettings.ApplicationSettings["Key3"] = dict;
    // IsolatedStorageSettings.ApplicationSettings.Save();
}

Что я наблюдал (как на эмуляторе, так и наМой телефон - HTC HD7) таков, что если две строки остаются закомментированными, то, когда я возвращаюсь из Tombstone, IsolatedStorageSettings.ApplicationSettings.Count возвращает 2 (ожидается), и присутствуют и Key1, и Key2.

Однако, еслиЯ раскомментирую две строки после возврата из tombstone: IsolatedStorageSettings.ApplicationSettings.Count возвращает 0, и ни Key1, ни Key2, ни Key3 не находятся в IsolatedStorageSettings.ApplicationSettings.

Ожидается: с двумя незакомментированными строками при возврате из tombstone IsolatedStorageSettings.ApplicationSettings.Count вернет 3, и будут присутствовать Key1, Key2 и Key3.

1 Ответ

1 голос
/ 31 июля 2011

Сериализация не будет работать со свойствами только для чтения.

См., Например, этот вопрос WCF .

...