2012-07-17 62 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