我需要帮助来弄清楚如何以编程方式连接到WCF服务。
这需要在不知道WCF服务的情况下完成,我只有一个地址。我没有在应用程序中添加所有wcf服务的选项。
我正在开发的应用程序将监视许多其他应用程序,并验证它们是否处于活动状态。也许每一分钟都是如此。
我有一个可能会增长和缩小的wcf服务的地址列表,因此我需要帮助来构建一个c#函数,该函数可以获取地址并连接到wcf服务,然后从该wcf服务请求信息。
我已经搜索了很多,但没有找到关于如何使用c# .net 4.0来实现这一点的信息和示例,因此我真的很感谢您的帮助。
谢谢
发布于 2011-04-21 10:28:39
您需要做的是在运行时创建代理,然后使用新创建的代理调用服务。
这种类型的动态代理应该使用MetadataResolver类从服务下载元数据,然后使用WsdlImporter类在运行时创建协定和绑定。
编译动态代理之后,您可以使用反射调用服务上的操作。这里有一个WCF动态代理的实现和解释,可能会让你入门:
http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx
您可以从以下位置下载代码:
发布于 2011-04-21 08:58:57
一种可能性是使用MetadataExchangeClient从活动的WCF服务中获取元数据,或者由于错误而失败,这将作为“ping”解决方案。
发布于 2011-04-21 09:04:38
你有没有试过使用svcutil
tool。您可以使用它来创建不同的代理类(对于您需要的每个服务),然后您就能够以一种非常简单的方式访问服务。如果列表中添加了新的服务(具有新的元数据),则只需扩展应用程序即可。
要使用svcutil
,您只需要知道服务地址。其他的一切都可以自动完成。
https://stackoverflow.com/questions/5741685
复制相似问题