以编程方式连接到wcf

时间:2011-04-21 08:46:07

标签: .net wcf c#-4.0

我需要帮助来弄清楚如何以编程方式连接到WCF服务。

这需要在不知道有关WCF服务的情况下完成,我只有一个地址。我没有选择在应用程序中添加所有wcf服务。

我正在处理的应用程序将过度监视许多其他应用程序并验证它们是否还活着。也许每分钟左右。

我有一个可能增长和缩小的wcf服务的地址列表,因此我需要帮助来构建ac#函数,该函数可以获取地址并连接到wcf服务,然后从该wcf服务请求信息。

我已经搜索了很多,但却无法找到有关如何使用c#.net 4.0完成此操作的信息和示例,因此我非常感谢您的帮助。

由于

3 个答案:

答案 0 :(得分:4)

您需要做的是在运行时创建代理,然后使用新创建的代理来调用服务。

此类型的动态代理应使用 MetadataResolver 类从服务下载元数据,然后使用 WsdlImporter 类在运行时创建合同和绑定。 / p>

编译动态代理后,您可以使用反射调用服务上的操作。这里有一个WCF动态代理的实现和解释,可能会帮助您入门:

http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

您可以从以下网址下载代码:

http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&DownloadId=3939

答案 1 :(得分:0)

一种可能性是使用MetadataExchangeClient从实时WCF服务获取元数据,或者使用错误失败,这将作为“ping”解决方案。

答案 2 :(得分:0)

您是否尝试过使用svcutil tool。您可以使用它来创建不同的代理类(对于您需要的每个服务),然后您可以以非常简单的方式访问服务。如果将新服务(包含新元数据)添加到列表中,您只需扩展您的应用程序。

要使用svcutil,您只需知道服务地址即可。其他一切都可以自动完成。