【发布时间】:2012-06-21 15:00:50
【问题描述】:
我正在引用在服务命名空间中公开Enum 类型的服务。生成代理时,Enum 类型不存在。是什么导致了这种情况发生,我该如何解决?
注意:将其添加为网络引用会生成类型,而作为服务引用则不会。
【问题讨论】:
标签: wcf web-services enums datacontractserializer
我正在引用在服务命名空间中公开Enum 类型的服务。生成代理时,Enum 类型不存在。是什么导致了这种情况发生,我该如何解决?
注意:将其添加为网络引用会生成类型,而作为服务引用则不会。
【问题讨论】:
标签: wcf web-services enums datacontractserializer
如果您没有在ServiceContract 中使用Enum - 它可能不为人所知。您可以尝试使用KnownType 并将Enum 标记为public 与DataContract 并将每个Enum 成员标记为EnumMember。
您还应该尝试将值显式分配给 Enum 类型,如下所示:
[DataContract]
public enum EnumType
{
[EnumMember]
Value1= 0,
[EnumMember]
Value2 = 1
}
而不是...
[DataContract]
public enum EnumType
{
[EnumMember]
Value1,
[EnumMember]
Value2
}
【讨论】: