none
关于枚举数据类型的序列化问题 RRS feed

  • 问题

  • 如下代码:
    [Serializable]
    public class Test
    {
         public My my=My.X;
        
    }
    public enum My
    {
        X=0,
        Y=1,
        Z=2
    }

    序列化Test后得到如下结果:
    <Test>
       <my>X</my>
    </Test>
    但这不是我想要的, 我想要的结果是:
    <Test>
       <my>0</my>
    </Test>
    我想要的是数字而不是字符串. 请问如实现?
    Gao Peter
    • 已移动 孟宪会Moderator 2009年11月16日 7:42 (发件人:Web 相关讨论(IIS,IE8等))
    2009年11月16日 7:29

答案

  • 如下代码:
    [Serializable]
    public class Test
    {
         public My my=My.X;
        
    }
    public enum My
    {
        X=0,
        Y=1,
        Z=2
    }

    序列化Test后得到如下结果:
    <Test>
       <my>X</my>
    </Test>
    但这不是我想要的, 我想要的结果是:
    <Test>
       <my>0</my>
    </Test>
    我想要的是数字而不是字符串. 请问如实现?
    Gao Peter

    public enum My
    {
       [EnumMember(Value = "0")]
        X=0,

       [EnumMember(Value = "1")]
        Y=1,

       [EnumMember(Value = "2")]
        Z=2
    }
    2009年11月16日 8:00

全部回复

  • 如下代码:
    [Serializable]
    public class Test
    {
         public My my=My.X;
        
    }
    public enum My
    {
        X=0,
        Y=1,
        Z=2
    }

    序列化Test后得到如下结果:
    <Test>
       <my>X</my>
    </Test>
    但这不是我想要的, 我想要的结果是:
    <Test>
       <my>0</my>
    </Test>
    我想要的是数字而不是字符串. 请问如实现?
    Gao Peter

    public enum My
    {
       [EnumMember(Value = "0")]
        X=0,

       [EnumMember(Value = "1")]
        Y=1,

       [EnumMember(Value = "2")]
        Z=2
    }
    2009年11月16日 8:00
  • 感谢Galactica的及时回复啊!
    欢迎常常来这里和大家交流啊!
    周雪峰
    2009年11月16日 9:58
    版主
  • 谢谢大家的帮助!
    Gao Peter
    2009年11月17日 1:19
  • 怎么将数字反序列化成枚举类型呢?

    像这个XML:

    <Test>
    <my>0</my>
    </Test>
    还有JSON:

    {“my":"0"}


    Z731
    2011年11月16日 9:27