在服务引用中包含枚举

时间:2012-02-08 09:30:31

标签: wcf silverlight

我有一个用于处理逻辑标志的枚举,我想通过WCF服务将处理逻辑暴露给Silverlight客户端。

第一个问题是如果我使用Option1 | Option2(位标志)序列化器有问题,因为两个选项的总和不等于可枚举选项(应该是)。我可以通过使用int作为参数来克服这个问题。然而,这遇到了我的第二个问题:我的枚举不包含在服务引用中,因为它不是任何类型的成员(DataContract)。

我可以用链接文件克服我的第二个问题,但是不愿意,或者通过创建一个返回枚举类型的虚方法,也不是很好。

是否有一种简单的方法可以对奇数进行去序列化,或者将枚举类型注入服务引用?还是一个更好的选择?

2 个答案:

答案 0 :(得分:0)

为此你应该使用:

[DataContract(Name = "CarCondition")]
public enum CarConditionEnum
{
    [EnumMember]
    New,
    [EnumMember]
    Used,
    [EnumMember]
    Rental,
    Broken,
    Stolen
}

您可以在此处获取更多详细信息:MSDN

答案 1 :(得分:0)

我刚刚找到一个名为[Flags]的枚举朋友,它允许我使用枚举作为参数值,并且位标志被正确反序列化...