PDA访问WCF实现重点在过程

开发 开发工具
PDA访问WCF在实际应用中是一个比较重要的操作技术,我们需要熟练的掌握它,才能很好的满足开发过程中所需要的特定需求。

作为一个开发领域的从业人员,我想,大家肯定是知道WCF这一由微软公司开发的.NET Framework 3.5的重要组成部分。今天我们会为大家讲解有关PDA访问WCF的相关操作技巧,以此让朋友们熟悉这一工具的应用方式。

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

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

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

 

  1. [ServiceContract]  
  2. public interface IWcfServcie  
  3. {  
  4. [OperationContract]  
  5. double Add(double x, double y);  
  6. [OperationContract]  
  7. DTO Create(string name, int age);  
  8. }  
  9. [DataContract]  
  10. public class DTO  
  11. {  
  12. [DataMember]  
  13. public string Name = string.Empty;  
  14. [DataMember]  
  15. public int Age = 0;  

PDA访问WCF步骤2、实现接口 

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

 

  1. public class WcfServcie : IWcfServcie  
  2. {   
  3. public double Add(double x, double y)  
  4. {  
  5. return x + y;  
  6. }  
  7. public DTO Create(string name, int age)  
  8. {  
  9. DTO obj = new DTO();  
  10. obj.Name = name;  
  11. obj.Age = age + 1;  
  12. return obj;  
  13. }  

3、启动服务端发布服务

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

 

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

PDA访问WCF步骤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,平台根据具体项目情况决定,然后将上面创建的两个文件加入到项目中

 

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

 

7、编译SmartDevice项目后运行。

到这里一步后,就完成了PDA访问WCF的所有操作。

责任编辑:曹凯 来源: 豆豆网
相关推荐

2010-02-22 10:52:34

PDA访问WCF

2012-01-11 09:46:31

DAL

2010-02-25 16:27:44

WCF扩展点

2009-12-08 17:56:16

WCF配置

2010-03-05 14:15:20

SilverlightWCF

2009-12-22 18:24:13

WCF面向服务

2017-01-18 15:59:41

小程序价值服务能力

2010-02-24 12:49:39

WCF枚举

2009-12-21 10:00:46

WCF基础开发

2010-02-25 13:35:27

WCF tcpTrac

2012-04-20 10:05:16

WCF

2020-05-09 10:33:21

人工智能技术工业4.0

2009-12-21 13:47:29

WCF分布式事务

2010-02-22 14:28:35

WCF实现loadin

2009-11-09 14:02:31

WCF传输数据

2009-12-21 17:48:30

WCF方法重载

2011-10-27 16:24:48

API

2010-02-26 14:19:03

WCF用户验证

2009-12-08 15:06:33

WCF传输DataSe

2010-03-01 13:17:46

WCF单向服务
点赞
收藏

51CTO技术栈公众号