4

有没有人有任何使用 WCF 进行动态编程的经验。我所说的动态编程是指 WSDL 的运行时消耗。我找到了一个博客条目/工具:http: //blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

这里有人找到了很好的工具吗?

4

3 回答 3

2

这是 WCF 比较奇怪的方面之一。您可以动态创建通道工厂,但只能使用已知类型。

我想出了一个不完美但确实有效的解决方案:

创建一个接口“IFoo”,其中包含一个方法,比如Execute(). ChannelFactory<IFoo>在您的 ESB 中,为您要连接的端点动态创建一个。设置连接属性(URI 等)。

现在,您可以将服务动态附加到您的 ESB,前提是它们始终实现“IFoo”接口。

于 2008-10-04T01:13:49.130 回答
1

我很久以前就使用 SOAP Web 服务完成了这项工作。GotDotNet 上有一个工具,我认为它已成为Web Services Studio Express,它具有检查/解析 WSDL 文件并允许您调用它的代码。

我认为假设是在创建客户端时 WSDL 是已知的,并且您不需要在运行时连接。如果您在运行时检查 WSDL,您仍然需要某种逻辑来决定如何生成代理。为什么不能在运行前使用 WSDL?Web 服务应该是相当静态的,其界面一旦发布就不会改变。

您可以使用 .NET CodeDom 生成代码来执行和使用 WSDL 描述的 Web 服务。可以使用标准的 .NET XML 类来解析 WSDL。

于 2008-09-03T18:42:10.123 回答
0

我实际上正在考虑制作一个小型 ESB,用户可以在其中添加 Web 服务以在运行时路由到。所以我不能静态添加 WSDL

于 2008-09-04T09:22:57.120 回答