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);

(...)

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

请问有什么想法或帮助吗?

4

2 回答 2

1

If you're using .Net 4.0 or higher you could use dynamic typing.

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

于 2013-08-16T22:15:19.273 回答
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);

(...)
于 2013-08-16T22:40:46.897 回答