如何选择要连接的WCF服务

本文关键字:连接 WCF 服务 何选择 选择 | 更新日期: 2023-09-27 18:27:56

我有两个独立的服务器,它们具有相同的WCF服务(比如WS1和WS2)和一个需要访问这两个服务的C#Mobile CF 2.0项目。

我能在C#CF2.0项目上做这样的事情吗?

(...)
if (someCondition == true) 
{
   WS1 aux = new WS1();
}
else
{
   WS2 aux = new WS2();
}
aux.service(parameter1);
(...)

请注意,我希望拥有相同的变量名,而与访问哪个服务器无关。问题是:我不知道如何在条件语句之外声明它,当我只是在条件语句内部声明它时,它们被声明为局部变量,我不知道怎样使变量公开或全局。

有什么想法或帮助吗?

如何选择要连接的WCF服务

由于WCF服务完全相同,只是在不同的服务器上运行,因此从客户端项目中只需添加对其中一个服务器的服务引用(例如WS1)。这将为您生成客户端代理。也许也可以给它一个通用名称,比如"serviceX"(用适合您的应用程序的东西替换X)。

然后,在客户端配置文件中,复制它创建的客户端端点,并添加另一个端点,唯一的区别是地址和端点名称。也许您希望将每个端点的端点名称属性分别设置为"WS1"answers"WS2"。

然后,在你的代码中,你应该能够做这样的事情:

(...)
serviceXClient aux = null;
if (someCondition == true) 
{
   aux = new serviceXClient("WS1");
}
else
{
   aux = new serviceXClient("WS2");
}
aux.service(parameter1);
(...)

如果您使用的是.Net 4.0或更高版本,则可以使用动态类型。

http://msdn.microsoft.com/en-us/library/dd264736.aspx