如何在datacontract WCF中使用枚举

时间:2010-12-23 09:08:45

标签: c# .net wcf web-services

我希望在WCF Web服务的数据合约中有一个枚举。

我正在尝试使用

[DataContract]
class myclass
{
    [DataMember]
    public int id {get; set;}

    [DataContract]
    public enum myenum
    { 
        [EnumMember]
        a,
        [EnumMember]
        b
    }
}

但我无法访问wcf客户端的枚举。请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:36)

要包含在mex / wsdl中,枚举需要在图表中的某处使用,例如,应该存在类型为myenum的某个属性。

表示图中未使用的主动类型。

另请注意,您实际上并不需要在所有中注释枚举 - 它们可以正常工作。如果要自定义它们在线路上的操作方式,则只需要枚举中的属性。

答案 1 :(得分:2)

正如马克所说 - 使用它。在需要iirc之前,数据类型本身不是问题。

部分原因是它不需要使用Datacontract和EnumMember(特殊规则适用)。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa347875.aspx