【发布时间】:2012-05-22 07:14:18
【问题描述】:
我有 WCF 服务。 它绑定到一个 MSMQ,但这不是这里的问题。 我可以序列化一个对象,该对象具有基类和在基类中实现的接口,具体类派生自基类 - 这很好。
然而,当我在基类中有一个枚举并设置了该值,然后在它被反序列化/从 MSMQ 读取之后,该值仍设置为默认值(即不是在代码中手动设置的值)
有什么想法吗?我什至将枚举标记为 DataContract,并将每个 Enum 成员都标记为 EnumMember 属性。
如何序列化枚举?
【问题讨论】:
-
您是否还用DataMember标记了您要转让的财产?
-
禁用仅我的代码,并在所有 CLR 异常上启用中断,然后您应该会看到一些内部序列化异常,告诉您出了什么问题。默认情况下,这永远不会记录在任何地方,所以这是我知道的唯一确定的方法来获取隐藏的真正异常。
-
理查德:没有例外。我做了你之前说的,什么也没做……尖叫——是的,我当然做了。适用于类中的所有内容(其他对象和值类型(即整数))但不适用于枚举
-
你能把你的课程贴在这里吗?你能缩小范围到中断的领域吗?它只是一个有 1 个枚举成员的类吗?还有——你的序列化代码是什么?