当我在wp7(C#)中保存包含枚举类型的变量时,我收到一个异常,意思是枚举是一个未知的类型,因此系统无法序列化。
例如
public enum videoType:int {
LongVideo=1,
ShortVideo }
or
public enum video
{
LongVideo,ShortVideo
}
_videoType = videoType.ShortVideo
PhoneApplicationService.Current.State["myType"]
有人告诉我使用Datacontract和数据成员但似乎在wp7
中不可用那么如何保存枚举类型?
答案 0 :(得分:1)
您必须将Enum Value保存为整数并重置以在页面激活后从整数中更正Enum值。
[读回保存的整数值并设置正确的枚举值。查找Enum.Parse / Enum.TryParse]
此外,您还可以查看Josh Smith在其文章http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx?msg=3766336 [WPF]
中实施的EnumValueToDescription Converter属性。http://www.michaelsnow.com/2010/12/25/how-to-convert-an-enum-to-its-string-value/
答案 1 :(得分:0)
DataContract和DataMember绝对 在所有版本的WP7中都可用。
您不需要将int指定为祖先类型,因为int是默认的祖先类型。
public enum videoType
{
LongVideo = 1,
ShortVideo,
}
由于您可以使用简单的强制转换将int转换为基于int的枚举,因此我建议将其转换为int以保存并转换回要加载的枚举。
答案 2 :(得分:0)