2012-07-17 45 views
0

我在服務層使用枚舉。所有做的好,如果我設置枚舉副價值反之亦然我不會比它給我一個錯誤 錯誤將其值設置:在DataContract類如何處理將服務層轉移到業務層的枚舉?

The underlying connection was closed: The connection was closed unexpectedly. 

我用枚舉,這將同時數據庫操作中使用。 我正在使用WCF服務通過使用數據模型來連接數據庫。在一些我使用枚舉的方法中,但在某些方法中,我不是。 DataContract類:

[DataMember] 
public Enums.SearchType SearchType { get; set; } 

枚舉聲明:

public enum SearchType 
    { 
     Search = 'S', 

     Export = 'E', 

     Undefined = 0 
    } 

那麼我應該在這種情況下做的?如果有人對此有比請幫我在這任何想法...

thanx提前............

+0

我認爲你濫用枚舉。值應該是整數。 – 2012-07-17 14:34:16

+0

@flem:你的意思是我不能使用它的字符串值? – user968441 2012-07-17 14:40:13

+0

他們不是字符串,這些是字符,可以作爲整數投入,因此它編譯 – 2012-07-17 17:25:10

回答

1

確保您的枚舉類型的默認值(0)

public SearchType 
{ 
    Undefined = 0, 
    ... 
} 

枚舉是Int32(除非另有規定)。默認(Int32)爲0. default(Enums.SearchType)也將爲0.如果未在枚舉中定義0,則數據協定反序列化將失敗。

+0

查看我更新的問題。我寫了這樣的枚舉聲明。 – user968441 2012-07-17 14:29:04