WCF合同限制字符串值

WCF合同限制字符串值,wcf,interop,contract-first,Wcf,Interop,Contract First,我们正在为一个项目定义一些WCF合同 在一种情况下,我们希望发送一个状态字段。我们想把它作为文本发送过来 我们能否在WCF合同中指定仅允许这些x字符串值 使用枚举会更好吗 我们将与java web服务进行互操作。不,您不能,但可以使用枚举,然后将枚举转换为与受限字符串列表等效的模式。这对非WCF客户端也很有帮助,因为它们可以很容易地看到允许的字符串值的范围 不幸的是,当涉及到版本控制时,枚举在WCF中带来了一些不幸的包袱。具体来说,您不能只添加一个新的枚举而不中断现有的WCF客户端。因此,添

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

在一种情况下,我们希望发送一个状态字段。我们想把它作为文本发送过来

  • 我们能否在WCF合同中指定仅允许这些x字符串值
  • 使用枚举会更好吗

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

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

不幸的是,当涉及到版本控制时,枚举在WCF中带来了一些不幸的包袱。具体来说,您不能只添加一个新的枚举而不中断现有的WCF客户端。因此,添加一个新的枚举被认为是一个突破性的变化


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

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

不幸的是,当涉及到版本控制时,枚举在WCF中带来了一些不幸的包袱。具体来说,您不能只添加一个新的枚举而不中断现有的WCF客户端。因此,添加一个新的枚举被认为是一个突破性的变化

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