【问题标题】:Enumerations in schemas using BizTalk WCF Service Publishing Wizard?使用 BizTalk WCF 服务发布向导的架构中的枚举?
【发布时间】:2021-10-30 23:08:33
【问题描述】:

我被要求使用 BizTalk WCF 服务发布向导从 BizTalk 将架构发布为 WCF 服务,并将成员公开为枚举。想法是禁止程序员在特定字段中给出错误的值。 我已将元素类型定义为字符串,具有限制和一组值,如下所示:

<xs:simpleType name="EventTypes">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Created"/>
    <xs:enumeration value="Changed"/>
    <xs:enumeration value="Deleted"/>
  </xs:restriction>
</xs:simpleType>

但是,生成的客户端并没有拾取这一点,并且不禁止程序员键入其他值,因为它是一个不受限制的字符串变量。

有没有办法在生成的客户端实际验证输入的地方发布 WCF 服务?

【问题讨论】:

  • 客户端使用的是什么生成类?如果您从 Visual Studio 中尝试,它会创建一个限制它的类吗?
  • 您能否编写另一个实用程序类来验证输入值并使用“添加服务引用”对话框?或者您可以在数据库中进行验证。
  • 实际上,这是可行的,但是在此过程中有些东西被缓存/没有重新生成……很棘手。我使用 Visual Studio 来生成客户端,无论是在它不工作时还是后来它工作时。感谢您的反馈!
  • 在答案中查看我的评论。

标签: wcf biztalk webservice-client biztalk-2016


【解决方案1】:

实际上,这是可行的,但是在此过程中某些内容被缓存/未重新生成……很棘手。我使用 Visual Studio 生成客户端,无论是在它不工作的时候还是后来它工作的时候。

【讨论】:

  • 使用 WCF 发布向导将始终替换生成架构中的限制,因为它会使用 *Specified 成员调整强制的、不可为空的字段。这是设计使然。您是否需要枚举和必填字段,您必须手动编辑生成的模式,但是您必须控制如何进行这些调用,因为该服务已“覆盖”其一般、安全的构造。
猜你喜欢
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
相关资源
最近更新 更多