2013-07-31 1 views
1

Я разработчик Windows Phone. Недавно я начал разработку приложений для приложений с окнами 8-го уровня. Я пытаюсь выяснить основы, такие как хранение пользовательских данных. Я попытался сохранить словарь словаря типа внутри контейнера. Когда я пытаюсь сделать это, я получаю исключение, говоря, что данные этого типа не могут быть сохранены! Что я делаю не так? мой код выглядит примерно так:Как хранить словарь <string, object> внутри контейнера в приложении Windows 8 Metro?

это мой хранения менеджер Класс:

ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 
StorageFolder storageFolder = ApplicationData.Current.LocalFolder; 

public bool SaveToStorage(string containerName, string key, object dataToStore) 
{ 
    try 
    { 
     if (!localSettings.Containers.ContainsKey(containerName)) 
     { 
      localSettings.CreateContainer(containerName, ApplicationDataCreateDisposition.Always); 
     } 
     localSettings.Containers[containerName].Values.Add(key, dataToStore); 
     return true; 
    } 
    catch (Exception ex) 
    { 
     return false; 
    } 
} 

Это как я передаю словарь

Dictionary<string, object> profileDict = new Dictionary<string, object>(); 
profileDict.Add(Utilities.FirstName, txtBoxFName.Text); 
profileDict.Add(Utilities.LastName, txtBoxLName.Text); 
profileDict.Add(Utilities.EMail, txtBoxEmail.Text); 
SaveToStorage(Utilities.MyMedicalProfileContainer, Utilities.MyProfile, profileDict); 

Может кто-то пожалуйста, помогите мне с этим .. Что я делаю неправильно? Любая помощь и предложения оценены!

Почему нет изолированного хранилища dll для этого?

ответ

1

Вы можете использовать сериализацию XML. ApplicationData.Current.LocalSettings не поддерживает все типы данных. Существуют также некоторые доступные библиотеки, которые обеспечивают функцию, аналогичную изолированному хранилищу. Они также используют сериализацию XML.

Generic Object Storage Helper for WinRT

Windows 8 Isolated Storage