4

如果我想从编排中调用 Web 服务或 wcf 方法,我可以通过向项目添加服务引用或添加生成的项来实现。这两种方法的优点是什么 - 是否有最佳实践?

4

1 回答 1

5

Steef -Jan Wiggers在这里回答了类似的问题

TL;DR - 始终使用Generated Items wizard.

我的 10c - 虽然 Add Service 导入的 .xsd 文件被添加为架构并设置为 BtsCompile,但存在一些限制,例如:

  • 添加服务引用将添加客户端代理,这在 BizTalk 项目中是不需要的(这可能会“诱使”您的开发人员做一些愚蠢的事情,例如从自定义程序集中使用此代理)
  • 服务引用使导入复杂的 WSDL 变得一团糟(例如,使用泛型或依赖于其他模式),请参阅使用 Web 服务时的注意事项

使用Add Generated Items向导为您做了额外的工作:

  • 添加用于访问服务的端口类型,已针对正确的消息类型进行了预配置。但是请注意,它将端口类型添加到虚拟 .odx - 即在您将端口类型移动到其他位置之前不要删除 odx。
  • 允许您同时创建发送端口绑定。

我建议使用向导的一件事是为 WCF 引用创建一个文件夹,并始终将所有工件导入该文件夹(即,不要将架构与端口进行通常的分离,并将虚拟 .odx 也留在那里) . 这样,如果您需要重新生成项目,只需删除文件夹中的所有内容并重新开始(遗憾的是,向导没有Update Service Reference等效项。

另请注意,如果您确实将生成的模式和端口类型移动到单独的程序集中,您将需要更改类型修饰符访问权限Public(默认情况下是内部的)

于 2012-10-17T12:26:01.697 回答