在Windows Phone 8中以编程方式使用WCF服务

本文关键字:方式使 WCF 服务 编程 Windows Phone | 更新日期: 2023-09-27 18:02:12

我希望能够在我的Windows Phone 8应用程序中使用WCF服务端点。

在谷歌上搜索只显示我必须右键单击WP8项目,选择"添加服务引用"…这对我来说不是一个可行的解决方案。

  • 我希望能够在我的Windows Phone 8应用程序中使用WCF服务,编程

  • 我在哪里定义我的客户端端点证书在Windows Phone 8应用程序?

想象一下,我想做一个Windows Phone 8应用程序,它应该能够连接到托管在另一个设备上的WCF服务,即一台计算机。然后,WP用户需要输入该计算机的主机名,以便能够连接到WCF服务。

在Windows Phone 8中以编程方式使用WCF服务

我建议你使用"Add Service Reference"来生成代理类。DTO和客户机代理将自动生成。您将受益于生产力、类型安全性和名称检查方面的巨大提升。

然后可以在运行时使用适当的构造函数指定url。例如:

private MyServiceClient GetMyServiceClient(string url)
{
  Uri uri = new Uri(url);
  BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
  EndpointAddress address = new EndpointAddress(uri);
  MyServiceClient client = new MyServiceClient(binding, address);
  return client;
}

(MySericeClient是生成的代理)

。Config stuff是可选的,你可以删除它

当您添加服务引用时,您的WP8项目将自动生成包装WCF服务的代理类。然后你的代码使用这个代理类。

另一种方法是手动创建代理类,相信我,如果可以的话,您希望避免这种情况。
  1. 由Add Service Reference生成的代理客户端类只有在使用其无参数构造函数时才会使用config中的主机名(端点地址)。当然你可以在运行时手动指定端点地址。
  2. 您可以创建服务契约可移植类库并在客户端和服务器端之间共享。然后你不必生成代理类,但你可以使用ChannelFactory API: http://www.c-sharpcorner.com/UploadFile/ff2f08/channel-factory-in-wcf/