DotNet · 2022年4月18日

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
    }

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞