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

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

有帮助吗?

解决方案

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

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

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

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

其他提示

我很久以前就用 SOAP Web 服务做到了这一点。GotDotNet 上有一个工具,我认为它已经成为 网络服务 Studio Express, ,其中包含检查/解析 WSDL 文件并允许您调用它的代码。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top