如何在Windows 8 Metro应用程序中的Container内存储Dictionary <string,object>?</string,object>

时间:2013-07-31 07:12:26

标签: c# windows-8 storage containers

我是一名Windows Phone开发者..我最近开始开发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 个答案:

答案 0 :(得分:1)

您可以使用XML序列化。 ApplicationData.Current.LocalSettings不支持所有数据类型。还有一些可用的库提供类似于隔离存储的功能。他们还使用XML序列化。

Generic Object Storage Helper for WinRT

Windows 8 Isolated Storage