PDA访问WCF具体步骤浅析

开发 开发工具
我们今天将会为大家详细介绍一下PDA访问WCF的相关方法,在这里,大家可以通过本文介绍的内容充分掌握这方面的应用技巧。

WCF作为一个.NET Framework 3.5的重要组成部分,其功能非常强大,可以帮助开发人员实现许多功能。在这里我们就可以先来了解一下PDA访问WCF的相关步骤,希望可以帮助大家掌握这方面的知识。

最近在做一个系统,客户端有两种类型,有PC和PDA。为了能支持不同的平台,并且复用业务逻辑,采用了WCF。PC及机部署的是WinForm的应用程序,比较容易。现在通过一个简单的PDA访问WCF例子说一下PDA如何做,注重的是这个过程。

现在从最开始的服务创建开始:

1、创建服务接口、定义服务端和客户端之间的数据传输类

 

[ServiceContract]  
public interface IWcfServcie  
{  
[OperationContract]  
double Add(double x, double y);  
[OperationContract]  
DTO Create(string name, int age);  
}  
[DataContract]  
public class DTO  
{  
[DataMember]  
public string Name = string.Empty;  
[DataMember]  
public int Age = 0;  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

 

2、实现接口

PDA访问WCF的功能非常的简单,一个是将两个数加起来,一个是构造一个DTO对象。

 

public class WcfServcie : IWcfServcie  
{   
public double Add(double x, double y)  
{  
return x + y;  
}  
public DTO Create(string name, int age)  
{  
DTO obj = new DTO();  
obj.Name = name;  
obj.Age = age + 1;  
return obj;  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

 

3、启动服务端发布服务

当然PDA访问WCF发布的方式很多,IIS、Windows Service和WinForm应用程序等都可以作为发布WCF的宿主程序。这里为了简单,我使用console程序进行发布。最关键的还是Uri和binding,如果想在PDA上调用wcf服务,那么binding必须采用BasicHttpBinding,这点必须注意。

 

Uri baseUri = new Uri("http://localhost:8080/wcfService");  
using (ServiceHost wcfServiceHost = new ServiceHost
(typeof(Service.WcfServcie), baseUri))  
{   BasicHttpBinding binding = new BasicHttpBinding();   wcfServiceHost.AddServiceEndpoint(typeof(IWcfServcie), 
binding, string.Empty);  
ServiceMetadataBehavior behavior = wcfServiceHost.
Description.Behaviors.Find
<ServiceMetadataBehavior>();   if (behavior == null)   {   behavior = new ServiceMetadataBehavior();   behavior.HttpGetEnabled = true;   behavior.HttpGetUrl = baseUri;   wcfServiceHost.Description.Behaviors.Add(behavior);   }   else   {   behavior.HttpGetEnabled = true;   behavior.HttpGetUrl = baseUri;   }   wcfServiceHost.Open();   Console.Read();  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

 

4、检查服务是否已发布#t#

编译后启动服务端程序,使用“:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\WcfTestClient.exe”,可以检查服务是否正常发布,当然也可以使用IE。我一般使用WcfTestClient.exe,它可以针对每个方法做测试。

5、创建PDA访问WCF服务代理类

可以手动写这部分代码,如果不想自己写代理类,那就下载NETCFv35PowerToys.msi并安装,然后“:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin”会有一个程序NetCFSvcUtil.exe。通过cmd执行“NetCFSvcUtil.exe http://localhost:8080/wcfService" ,\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin目录下会出现生成的两个文件CFClientBase.cs和WcfServcie.cs,这就是服务的代理类。需要注意的是WcfServcie.cs中”public static System.ServiceModel.EndpointAddress EndpointAddress = new System.ServiceModel.EndpointAddress("http://localhost:8080/wcfService");“,将”localhost“改为服务端的Ip。

6、创建SmartSeviceProject,平台根据具体项目情况决定,然后将上面创建的两个文件加入到项目中

 

WcfServcieClient service = new WcfServcieClient();//服务代理对象  
private void button1_Click(object sender, EventArgs e)  
{  
this.textBox6.Text = service.Add(Convert.ToDouble(this.textBox1.Text), 
Convert.ToDouble(this.textBox2.Text)).ToString();  
}   private void button2_Click(object sender, EventArgs e)   {   DTO obj = null;   obj = service.Create(textBox4.Text, Convert.ToInt32(textBox3.Text));   textBox5.Text = string.Format
("Name is : {0} Age is : {1}", obj.Name, obj.Age);  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

 

7、编译SmartDevice项目后运行。打完,收工。以上就是对PDA访问WCF的相关介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-07 10:46:08

WCF框架

2010-08-06 13:04:25

思科路由器阻止访问特定网站

2010-03-02 11:15:34

PDA访问WCF

2011-01-26 11:05:12

思科认证

2010-07-02 09:48:58

2003 SNMP启用

2009-01-30 21:56:00

2010-10-08 11:29:24

JavaScript对象

2010-08-02 17:08:34

Flex Eclips

2010-06-21 17:05:00

Linux Arch

2010-09-25 16:30:25

DHCP选项设置

2010-06-22 16:05:40

Autoconf rp

2009-09-03 14:49:49

C#实现网络点对点

2010-09-26 10:38:37

JVM安装Tomcat

2011-04-07 14:53:18

路由器局域网宽带路由器

2010-09-03 11:53:09

华为DHCP配置

2010-06-08 18:59:03

OpenSUSE li

2010-04-08 17:51:05

Oracle表列

2014-06-03 17:19:24

路由器IS-IS

2013-06-19 09:51:32

vSphere服务器虚拟化

2010-01-12 11:55:10

VB.NET网络监控
点赞
收藏

51CTO技术栈公众号