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

时间:2013-03-04 14:19:18

标签: c# wcf windows-phone-8 windows-phone

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

在Google上搜索只显示我必须右键单击WP8项目,选择“添加服务参考”...在我的情况下,这不是一个可行的解决方案。

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

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

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

3 个答案:

答案 0 :(得分:2)

我建议您使用“添加服务引用”来生成代理类。 将自动生成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 内容是可选的,您可以将其删除。

答案 1 :(得分:1)

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

另一种方法是手动创建代理类,相信我,如果可以的话,你想避免这种情况......

答案 2 :(得分:0)

  1. 添加服务引用生成的代理客户端类仅在使用其无参数构造函数时才使用来自config的主机名(端点地址)。您可以在运行时手动指定端点地址。
  2. 您可以创建服务合同可移植类库并在客户端和服务器之间共享它。然后你不必生成代理类,但是你使用ChannelFactory API:http://www.c-sharpcorner.com/UploadFile/ff2f08/channel-factory-in-wcf/