【发布时间】:2012-01-17 21:36:04
【问题描述】:
我有一个 WCF 服务 (.NET4.0)。客户端在 .NET2.0 中。客户端传递给服务的枚举值始终设置为枚举默认值(即第一个枚举成员)。
这是 .NET2.0 中的问题吗?有什么解决方法吗?
【问题讨论】:
-
我为每个枚举字段找到了
Specified field(bool)。如果我将这些 指定的字段设置为 true,然后在枚举成员中设置值,WCF 服务就能够获得准确的传递值。如果未设置指定字段(默认为 false),则仅接收枚举的默认值。为什么会有这种行为? -
这是因为这些属性是可选的。表明它们存在的唯一方法是使用这个单独的字段。如果需要,则不需要该字段。
-
谢谢约翰。我为数据成员指定了 IsRequired 属性,
指定的字段消失了,并且客户端设置的值也被接收。这似乎适用于所有在 .NET 中具有默认值的数据类型,例如 int、bool、enums。
标签: wcf xmlserializer web-reference