枚举未成功从.NET2.0客户端传递到WCF服务

时间:2012-01-17 21:36:05

标签: wcf xmlserializer web-reference

我有一个WCF服务(.NET4.0)。客户端在.NET2.0中。客户端传递到服务中的枚举值始终使用枚举默认值(这是第一个枚举成员)设置。

这是.NET2.0中的一个问题吗?有没有解决方法?

1 个答案:

答案 0 :(得分:2)

< FieldName> Specified是XmlSerializer使用的功能。我之前一直受到这种骚扰。每个人都以类似的痛苦方式发现这个功能。

正如您所说,如果将其设置为false,则您的字段将不会被序列化。不幸的是,布尔字段的默认值是错误的,所以如果忘记设置它会非常烦人。

如果您不欣赏此功能,那么您应该只能删除< FieldName>指定字段而不会产生任何后果。然后该字段将始终被序列化。

这些字段只会有所不同,因为您在.NET 2中使用XmlSerializer。在.NET 4 WCF应用程序中,您使用的DataContractSerializer不具备此功能。

WCF并未真正接收枚举的默认值。真的没有在服务器上收到该枚举的任何内容。因此,枚举未设置,因此它仍然是默认值。