我将枚举用作标志并希望对其进行“或”操作,但总是遇到错误:
枚举值“3”对于类型“Common.EventType”无效,无法序列化。确保所需的枚举值存在,并且如果类型具有DataContractAttribute属性,则已用EnumMemberAttribute属性标记。
代码:
枚举值“3”对于类型“Common.EventType”无效,无法序列化。确保所需的枚举值存在,并且如果类型具有DataContractAttribute属性,则已用EnumMemberAttribute属性标记。
代码:
[DataContract]
public enum EventType
{
[EnumMember]
Event1 = 1,
[EnumMember]
Event2 = 2,
[EnumMember]
Event3 = 4,
[EnumMember]
AllEvents = Event1 | Event2 | Event3
}
我的合同客户端代理 = new MyContractClient(context);
代理.订阅(事件类型.事件1 | 事件类型.事件2);
预先感谢您。
FlagsAttribute
以在枚举类型上使用位运算(&
和|
)。虽然,我不确定这是否会修复给定的错误.. - user166390