zoukankan      html  css  js  c++  java
  • WCF枚举属性 出错 wcf 枚举的一个陷阱

      [DataContract]
        public enum GetMailType
        {
          
            [EnumMember]
            DDA=1,
            [EnumMember]
            KVK=2,
            [EnumMember]
            BTW=3,
        }

    我们有一个类。放在数据库当中用的

    [DataContract(IsReference = true)]
        public class UnaddressConfig
        {
            [DataMember]
            public int GetMailTypeID
            { get; set; }
     
    [NotMapped]
            [DataMember]
            public GetMailType GetMailType
            {
                get { return (GetMailType)GetMailTypeID; }
                set { GetMailTypeID = (int)value; }
            }
    }

    我们系统当中有一个方法 Save(UnaddressConfig config)
    客户端添加WCF引用后 调用这个方法的时候可能会造成。
    config.GetMailType=GetMailType.DDA

    在服务端我们会发现在这个值可能是0

    为什么会这样呢?

     因为

      GetMailTypeID 这个值就是0.

    解决的方法是把 GetMailTypeID的Atribute

    [DataMember]
    去掉。 因为我们客户端实际也不需要这个。只是数据库哪边需要。(如果 Entity framework哪边直接支持枚举就更好了).

  • 相关阅读:
    做事的底线和逻辑
    我在华为的十年----徐家俊
    华为的冬天
    如何当好一个师长--林彪
    Base64 的那些事儿
    流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
    软件目的需求开发与管理
    车载行业认证资质
    tcpdump抓包分析 https://www.01hai.com/note/av263669
    packages.conifg
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/2377125.html
Copyright © 2011-2022 走看看