12

我有 WCF 服务。它绑定到一个 MSMQ,但这不是这里的问题。我可以序列化一个对象,该对象具有基类和在基类中实现的接口,具体类派生自基类 - 这很好用。

但是,当我在基类中有一个枚举并设置了该值,然后在它被反序列化/从 MSMQ 读取之后,该值仍设置为默认值(即不是在代码中手动设置的值)

有什么想法吗?我什至将枚举标记为 DataContract,并且每个 Enum 成员都具有 EnumMember 属性。

如何序列化枚举?

4

4 回答 4

4

试试这个。

[Serializable]
public enum EnumToSerialize
{
    [XmlEnum("1")]
    One = 1,
    [XmlEnum("2")]
    Two = 2
}
于 2012-05-14T19:07:04.337 回答
4

该财产受到保护。将其设置为 Public 和 viola - 序列化 enum 属性。有点糟糕,因为该物业位于低音类中……而是受到保护

于 2012-05-14T23:52:15.987 回答
1

试试MSDN上的这篇文章。这个例子似乎能够设置一个带有枚举的属性并将其序列化。在反序列化对象时,您应该能够取回相同的值。

于 2012-05-14T23:23:28.643 回答
0

我使用它,它适用于公共枚举:

[Serializable]
public enum EnumToSerialize
{
    [EnumMember]
    One = 1,
    [EnumMember]
    Two = 2
}
于 2015-03-20T13:48:53.587 回答