事实证明,当您尝试存储枚举值时,WinRT 保存设置的能力会引发异常。 MSDN 在页面上说 "Accessing app data with the Windows Runtime"只有"Runtime Data Types"得到支持。
那么,如何保存枚举?
最佳答案
这是一个非常奇怪的行为。但很容易解决。
首先你需要像这样的某种类型的解析例程:
T ParseEnum<T>(object value)
{
if (value == null)
return default(T);
return (T)Enum.Parse(typeof(T), value.ToString());
}
注意:ENUM 的默认值始终是它的 0 值成员。
然后你可以像这样与它交互:
var _Settings = ApplicationData.Current.LocalSettings.Values;
// write
_Settings["Color"] = MyColors.Red.ToString()
// read
return ParseEnum<MyColors>(_Settings["Color"]);
基本上,我们只是将其转换为字符串。
关于c# - 如何将枚举保存到 ApplicationData.Current.LocalSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12748944/