导航

WCF and enum members

Posted on 2011-03-16 16:22  毅无涯  阅读(319)  评论(0编辑  收藏  举报
When using enum Members in a WCF Service, be sure to include the EnumMember attribute for every enum member:
[DataContract]
public enum States
{
        [EnumMember]
        Unknown = 0,

        [EnumMember]
        Connected = 1,

        [EnumMember]
        Disconnected = 2
}


[DataContract]
public class ClientState
{
    [DataMember]
    public string ClientID { get; set; }

    [DataMember]
    public States State { get; set; }
}

If you forget to set this, you will receive a CommunicationException containing ErrorCode 10054 in its InnerException.
This is caused by a (De)Serialization problem for the enum values which are not known by name in the proxy.