通过WCF服务传递枚举

niv*_*ran 3 c# wcf

我需要在项目中定义一个枚举到我的WCF服务项目的枚举.我正在创建一个包含枚举和其他数据的对象.当我通过WCF服务将对象传递给客户端时,我找不到.

枚举:

public enum Color
{
    Red = 1,
    Blue,
    Green,
}
Run Code Online (Sandbox Code Playgroud)

要传递的对象:

public class MyObject
{
    public Color ColorEnum { get; set; }
    public string Name{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

只有当我给对象一个默认值,即ColourEnum = Color.Red时,服务才有效.如果它没有设置它休息.我知道这是一个解决方法,但我正在寻找一个更有意义的解决方案,而不是设置一个arb值.而我只是想明白为什么它会破裂

提前致谢

ken*_*n2k 7

尝试EnumMember在枚举值上添加属性.

  • @nivensookharan请为枚举指定默认值.序列化程序无法为ColorEnum属性指定值,因为默认值为0且您的枚举从1开始. (2认同)

Chh*_*rma 7

我在我的WCF项目中有一个枚举,如下所示:

[DataContract]
public class CarBookReq
{
    [DataMember]
    public string RefNo { get; set; }

    [DataMember]
    public RateType MyProperty { get; set; }

}

[DataContract]
public enum RateType
{
    [EnumMember]
    silver,
    [EnumMember]
    gold,
    [EnumMember]
    platinum,
    [EnumMember]
    young,
    [EnumMember]
    youngplus
}
Run Code Online (Sandbox Code Playgroud)