我有一个WCF服务。 它与MSMQ绑定,但这不是问题。 我可以序列化一个对象,它有一个基类和一个在基类中实现的接口,具体类派生自基类 - 这很好。
但是,当我在基类中有一个枚举并且我设置了该值时,在从MSMQ反序列化/读取之后,该值仍然设置为默认值(即不是在代码中手动设置的值)
有什么想法吗?我甚至将枚举标记为DataContract以及每个具有EnumMember属性的Enum成员。
如何序列化枚举?
答案 0 :(得分:3)
试试这个。
[Serializable]
public enum EnumToSerialize
{
[XmlEnum("1")]
One = 1,
[XmlEnum("2")]
Two = 2
}
答案 1 :(得分:2)
该物业受到保护。将它设置为Public和viola - 序列化enum属性。有点不好,因为该物业属于低音类......而是保护它
答案 2 :(得分:1)
在MSDN上试试这篇文章。此示例似乎能够使用枚举设置属性并将其序列化。在反序列化对象时,您应该能够获得相同的值。
答案 3 :(得分:0)
我使用它,适用于公共枚举:
[Serializable]
public enum EnumToSerialize
{
[EnumMember]
One = 1,
[EnumMember]
Two = 2
}