• 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哪边直接支持枚举就更好了).

  • 相关阅读:
    spring 定时任务 taskScheduler详解
    shiro.ini 配置详解
    nginx : server_name localhost 和 chrome : Provisional headers are shown
    参数文件管理
    归档日志管理
    日志文件管理
    控制文件管理
    数据文件管理
    OGG配置参数样例
    OGG配置案例一(源表与目标表结构一致)
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/2377125.html
Copyright © 2020-2023  润新知