由於需要,在使用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
}
只更改此處就可用了。