WCF wince的应用

目前.NET CF3.5预定义的仅支持BasicHttpBinding和WindowsMobileMailBinding两种方式:

1)      BasicHttpBinding,从本质上来讲,基本和原来调用Web Service的方式一样,因为它支持在http下进行传统的C/S互操作,客户端只需发出一个服务请求并等待回应。

2)      WindowsMobileMailBinding,这是一个Compact WCF中全新的通信方式,它使用Email作为消息传输的载体,提供了一个全双工的通讯信道,允许进行非可靠的双向异步通信

cf3.5不支持net.tcp的应用,故有些相关的TCP协议就必须通过传统的方式进行代码的编写了。

代理类

对于cf3.5的webservice的代理类,可以通过添加web服务引用,然后把References.cs这个类提取出来获得

而对于wcf我们就只能借助使用Power Toys的NetCFSvcUtil.exe工具生成客户端代理类。Power Toys下载地址http://115.com/file/be1mgii1

安装Power Toys后,可以在cmd下

C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin\netcfsvcutil.exe

 这样我们就可以用

netcfsvcutil.exe /language:cs  http://127.0.0.1/web.svc来生成代理类

这样就能生成两个文件CFClientBase.cs和web.cs两个文件

这2个文件中就包含接口方法的调用.

此工具不会像桌面 svcutil.exe 工具那样生成 App.config 文件,cf3.5不支持通过配置文件对 WCF 进行配置,因此服务的所有端点信息都需要在代码中。

客户端可以创建一个静态方法用来返回对于服务器的调用

public static WebClient GetSvc()     
 {          
             System.ServiceModel.Channels.Binding bind = WebClient.CreateDefaultBinding();
             string remoteAddress = WebClient.EndpointAddress.Uri.ToString(); 
             EndpointAddress endpoint = new EndpointAddress(remoteAddress); 
             WebClient= new WebClient(bind, endpoint);     
             return client;      
  }
//调用GetString方法
public static  string  GetString() 
{
    return GetSvc().GetStriing();
}
原文地址:https://www.cnblogs.com/fujinliang/p/2570896.html