zoukankan      html  css  js  c++  java
  • 重温WCF之数据契约中使用枚举(转载)(十一)

    转载地址:http://www.zhuli8.com/wcf/EnumMember.html

    枚举类型的定义总是支持序列化的。当我们定义一个新的枚举时,不必应用DataContract特性,就可以在数据契约中使用它。数据契约隐式地包含了枚举对象的所有值。

      enum ContactType
         {
             Customer,
             Vendor,
             Partner
         }
    
         [DataContract]
         struct Contact
         {
             [DataMember]
             public ContactType ContactType;
             [DataMember]
             public string FirstName;
             [DataMember]
             public string LastName;
         }

    如果要将确定的枚举值排除于数据契约之外,首先需要为枚举类型标记DataContract特性。然后,再将那些我们希望包含在枚举数据契约的枚举值,明确地标记为EnumMember特性。

    没有标记EnumMember特性的枚举值不属于该枚举的数据契约。

    [DataContract]
    enum ContactType
    {
    [EnumMember]
    Customer,
    [EnumMember]
    Vendor,
    //不会成为数据契约的一部分
    Partner
    }
    生成的传输型表示形式为:
    enum ContactType
    {
    Customer,
    Vendor
    }
    EnumMember特性还有另外一个用途,就是通过它的Value属性,为现有的枚举数据契约的枚举值设置确切的别名。例如这样的枚举:
    [DataContract]
    enum ContactType
    {
    [EnumMember(Value = "MyCustomer")]
    Customer,
    [EnumMember]
    Vendor,
    [EnumMember]
    Partner
    }
    生成的传输型表示形式如下:
    enum ContactType
    {
    MyCustomer,
    Vendor,
    Partner
    }

  • 相关阅读:
    java-多个数的和
    大道至简第二章
    大道至简第一章感悟上
    Tools
    LruCache
    Fragment
    科普指纹识别
    Python使用MySQL数据库
    Eclipse中添加PyDev插件
    UniversalAndroidImageLoader出现异常:ImageLoader: Unable to resolve host "https": No address associated with host
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/4119060.html
Copyright © 2011-2022 走看看