如何选择要连接的WCF服务?

时间:2013-08-16 21:29:37

标签: c# wcf windows-mobile c#-2.0

我有两个独立的服务器,它们具有相同的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);

(...)

请注意,我想拥有相同的变量名称,与我将访问的服务器无关。问题是:我不知道如何在条件语句之外声明它,当我在条件语句中声明它们时,它们被声明为局部变量,我不知道如何使变量公共或全局。

有任何想法或帮助吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

然后,在您的代码中,您应该可以执行以下操作:

(...)

serviceXClient aux = null;

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

aux.service(parameter1);

(...)