我可以装饰我的[DataMember]以在WSDL中生成限制吗?

时间:2014-03-20 15:48:22

标签: c# soap wsdl

提前感谢任何有帮助的人。

我已成功在C#.Net VS2012中构建SOAP服务和测试客户端,并一直在使用它为我们将要部署的即将推出的服务做准备。服务器将只公开几个服务,但是它们将使用一些类,这些类将暴露大约300个[DataMembers]。

团队负责人担心,当我从浏览器访问服务时为我生成的WSDL不包含对各种元素的限制。

换句话说,从服务网站抓取的生成的WSDL可能如下所示:

      <xs:element minOccurs="0" name="FirstName" nillable="true" type="xs:string"/>

但他建议我们需要这样的东西:

      <xs:element minOccurs="0" name="FirstName" >
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="18"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>

我认为他的担心是,一旦使用生成的WSDL添加服务引用,客户端开发人员就不会知道最大长度或模式等字段限制。

我已经为各种验证添加了服务器端故障异常(包括最大长度,模式,空字符串等)。我还在一小组中实现了DevTrends DataAnnotations来测试它是如何工作的 - 工作得非常好BTW。

但我需要知道的是有一种方法可以从代码中获取这些xs:限制到WSDL中。有没有办法做到这一点或我必须手动这样做(将有大约300个字段,所以我保持沉默,这样做)?考虑到我已经实施的其他验证机制,这真的是必要的吗?有没有更好的替代品,我错过了?

再次感谢!

0 个答案:

没有答案