我有一个用于处理逻辑标志的枚举,我想通过WCF服务将处理逻辑暴露给Silverlight客户端。
第一个问题是如果我使用Option1 | Option2(位标志)序列化器有问题,因为两个选项的总和不等于可枚举选项(应该是)。我可以通过使用int作为参数来克服这个问题。然而,这遇到了我的第二个问题:我的枚举不包含在服务引用中,因为它不是任何类型的成员(DataContract)。
我可以用链接文件克服我的第二个问题,但是不愿意,或者通过创建一个返回枚举类型的虚方法,也不是很好。
是否有一种简单的方法可以对奇数进行去序列化,或者将枚举类型注入服务引用?还是一个更好的选择?
答案 0 :(得分:0)
为此你应该使用:
[DataContract(Name = "CarCondition")]
public enum CarConditionEnum
{
[EnumMember]
New,
[EnumMember]
Used,
[EnumMember]
Rental,
Broken,
Stolen
}
您可以在此处获取更多详细信息:MSDN。
答案 1 :(得分:0)
我刚刚找到一个名为[Flags]的枚举朋友,它允许我使用枚举作为参数值,并且位标志被正确反序列化...