WCF 中使用枚舉類型

 

由於需要,在使用WCF技術中要用到枚舉類型,於是乎,直接拿來用。代碼如下所見:

 

  [DataContract]
    public enum FileType
    { 

        [EnumMember]
        Audio = 0,

 

        [EnumMember]
        Video = 1,
       

        [EnumMember]
        Picture = 2,

 

        [EnumMember]
        Other = 3
    }

 

 [DataContract]
    public class ProgramFileRequest
    {
      

        string _filename = "";
        FileType _filetype = FileType.Audio;
        string _filepath = "";
     

      

        /// <summary>
        ///
        /// </summary>
        [DataMember]
        public string FileName
        {
            get { return _filename; }
            set { _filename = value; }
        }

        /// <summary>
        /// 文件類型
        /// </summary>
        [DataMember]
        public FileType FileType
        {
            get { return _filetype; }
            set { _filetype = value; }
        }

        /// <summary>
        ///
        /// </summary>
        [DataMember]
        public string FilePath
        {
            get { return _filepath; }
            set { _filepath = value; }
        }

     }

在這樣寫完後,調用此服務時發現了一個很意外的問題,枚舉類型竟然編譯爲string類型。可是爲它賦string類型的值後運行就提示類型不能轉換的錯誤,後來在枚舉類型定義時添加一個[EnumMember]這個標籤後就可以了。但奇怪的是同事寫的枚舉類型不加這個標籤就可以。。。。

改正後的枚舉類型爲:

 

   [DataContract]
    public enum FileType
    { 
        

        [EnumMember]
        Audio = 0,

       

        [EnumMember]
        Video = 1,       
     

        [EnumMember]
        Picture = 2,

      

        [EnumMember]
        Other = 3
    }

 

只更改此處就可用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章