2011-05-16 72 views
0

我们正在为一个项目定义一些WCF合同。WCF合同限制字符串值

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

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

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

回答

4

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

不幸的是,枚举在WCF中涉及到版本控制时会带来一些不幸的负担。具体来说,你不能只添加一个新的枚举而不能打破现有的WCF客户端。因此添加一个新的枚举被认为是一个突破性的改变。

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

+0

+1:完美的回应! – 2011-05-16 14:25:51