【发布时间】:2014-08-22 05:58:57
【问题描述】:
我正在开发一个允许客户更改地址的 WCF SOAP Web 服务。目前我们有一些属性,他们可以根据一些简短的枚举来定义国家和州。
状态枚举目前仅包含澳大利亚各州,但现在我们打算也允许来自美国的地址,这导致比以前更多的州。 为了解决这个问题,我想出了以下三个解决方案,但它们似乎都不是那么棒,任何其他解决方案或至少一些优点/缺点将不胜感激:
1.将美国各州添加到现有枚举中
我们可以将额外的 50 个美国州添加到现有枚举中,并在检查所选州是否属于给定国家时添加一些验证。
2。为每个国家/地区的界面添加两个新枚举:AUSStates/USStates
我们可以在界面中添加两个新属性,允许为每个国家/地区选择一个州(USState 和 AUSState),然后根据给定的国家/地区选择州。我们将保留现有的 State 属性,以便当前用户不必更新他们的界面。
3.为美国添加新的接口/端点
我们可以添加一个新的 US 接口,该接口在 State 属性中提供 US States 枚举值,而不是使现有接口变脏。但这将不再允许在 AUS 界面中输入美国地址,反之亦然。
我们目前没有任何soap版本控制,我们将状态的值作为两个字母代码存储在数据库中,无论它属于哪个国家/地区都会进入同一列。
【问题讨论】:
-
4) 将字段设为字符串,让用户输入任何她/他喜欢的内容。在服务器端验证。
-
您必须为此使用字符串。实际上,USPS 寻址的“州”比 50 个合法州多,例如哥伦比亚特区、波多黎各、关岛等各个地区以及武装部队地址。假设,这个列表可能每年都在变化。当前列表:usps.com/send/official-abbreviations.htm
标签: c# wcf soap enums internationalization