WCF合约限制字符串值

时间:2011-05-16 14:11:29

标签: wcf interop contract-first

我们正在为项目定义一些WCF合同。

在一种情况下,我们希望通过状态字段发送。我们只是将其作为文本发送。

  • 我们可以在WCF合同中指定只允许这些x字符串值吗?
  • 使用枚举会更好吗?

我们将与java web服务进行互操作。

1 个答案:

答案 0 :(得分:4)

不,你不能,但你可以使用枚举,然后将其转换为相当于受限制的字符串列表的模式。这对非WCF客户端也很有用,因为它们可以很容易地看到允许的字符串值的范围。

不幸的是,在版本控制方面,枚举在WCF中带来了一些不幸的包袱。具体来说,您不能只添加新的枚举,也不能破坏现有的WCF客户端。因此,添加新的枚举被认为是一个重大改变。

您需要权衡这两个选项并确定哪个最适合您。如果选择“纯”字符串,则需要自己验证值。这可以通过编写IParameterInspector来完成,您可以将其挂钩到可能使用您有兴趣约束的数据协定的所有服务。