题
有人有使用 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
不隶属于 StackOverflow