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
}