1

我是一名 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 不能做同样的事情?

4

1 回答 1

1

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

WinRT 的通用对象存储帮助程序

Windows 8 独立存储

于 2013-07-31T09:49:52.630 回答