Tombstone wp7如何保存Enum ...等未知对象

时间:2011-06-17 10:19:16

标签: c# windows-phone-7 windows-phone

当我在wp7(C#)中保存包含枚举类型的变量时,我收到一个异常,意思是枚举是一个未知的类型,因此系统无法序列化。

例如

public enum videoType:int {
       LongVideo=1,
      ShortVideo }

or

public enum video
{

       LongVideo,ShortVideo
}


 _videoType = videoType.ShortVideo 


PhoneApplicationService.Current.State["myType"]

有人告诉我使用Datacontract和数据成员但似乎在wp7

中不可用

那么如何保存枚举类型?

3 个答案:

答案 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)