有没有人有任何使用 WCF 进行动态编程的经验。我所说的动态编程是指 WSDL 的运行时消耗。我找到了一个博客条目/工具:http: //blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx
这里有人找到了很好的工具吗?
有没有人有任何使用 WCF 进行动态编程的经验。我所说的动态编程是指 WSDL 的运行时消耗。我找到了一个博客条目/工具:http: //blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx
这里有人找到了很好的工具吗?
这是 WCF 比较奇怪的方面之一。您可以动态创建通道工厂,但只能使用已知类型。
我想出了一个不完美但确实有效的解决方案:
创建一个接口“IFoo”,其中包含一个方法,比如Execute()
. ChannelFactory<IFoo>
在您的 ESB 中,为您要连接的端点动态创建一个。设置连接属性(URI 等)。
现在,您可以将服务动态附加到您的 ESB,前提是它们始终实现“IFoo”接口。
我很久以前就使用 SOAP Web 服务完成了这项工作。GotDotNet 上有一个工具,我认为它已成为Web Services Studio Express,它具有检查/解析 WSDL 文件并允许您调用它的代码。
我认为假设是在创建客户端时 WSDL 是已知的,并且您不需要在运行时连接。如果您在运行时检查 WSDL,您仍然需要某种逻辑来决定如何生成代理。为什么不能在运行前使用 WSDL?Web 服务应该是相当静态的,其界面一旦发布就不会改变。
您可以使用 .NET CodeDom 生成代码来执行和使用 WSDL 描述的 Web 服务。可以使用标准的 .NET XML 类来解析 WSDL。
我实际上正在考虑制作一个小型 ESB,用户可以在其中添加 Web 服务以在运行时路由到。所以我不能静态添加 WSDL