WCF传递枚举值错误问题

Laughing
2017-07-26 / 0 评论 / 1,170 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月27日,已超过1361天没有更新,若内容或图片失效,请留言反馈。

今天对外发布一个wcf接口,因为涉及到一些数据状态,是个枚举值,所以本来打算定义一个枚举,然后客户端调用枚举进行传值,这样可以防止不必要的参数传入,但是在测试过程中,枚举传递到服务端的数据始终都是0,也就是第一个数据。

代码定义

当时服务端代码是这么写的

[DataContract]  
   public enum DataState  
   {  
       [EnumMember]  
       Freeze = 0,  
       [EnumMember]  
       Active = 1  
   }  
  
   [DataContract]  
   public class TestClass  
   {  
       [DataMember]  
       public DataState state { get; set; }  
   }

但是客户端调用WCF服务是,不管枚举值传递Freeze还是Active,服务端得到的始终都是Freeze。之前看网上有人说可以把属性里面的[DataMember]去掉,但是我客户端是需要使用这个属性的,所以如果去掉,客户端就获取不到,百度了一番度娘也没找到解决办法,大家有知道的烦请告诉一声。

0

评论 (0)

取消
  1. 头像
    多大的人
    MacOS · Safari

    thank you,谢谢

    回复
  2. 头像
    云缠月
    Windows 7 · Google Chrome

    文章大有看点,支持!

    回复