用WCF链接Silverlight客户端与服务端

  最近正在开发一个项目,需要应用到Silverlight以及数据库。在正式开工之前需要掌握将数据从服务端送到客户端的技术,我们采用建立WCF服务的方法。

成都创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站制作、成都做网站、外贸营销网站建设、成都网页设计、成都微信小程序、成都网站开发、成都网站制作、成都软件开发、app软件定制开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!

  “做中学”是最好的学习方法,真正实践之后学习者将会有更多的自信和把握,这种感觉将激励他更好的走下去,这也就是“Hello World”的意义之一。

  本文讲述如何一步一步搭建,完成借助WCF建立起Silverlight客户端和服务端的信息传输通道。

这里的解决方案使用Visual Studio 10,.Net Framework 4.0, Silverlight 4.0

  1.建立名为DataHighway的Silverlight Application

  下图中,Project DataHighway是客户端,Project DataHighway.Web是服务端。

2、新建两个项目。

  创建名为DataHighway.Client的Silverlight Class Library,它是配合用户端的。

  创建名为DataHighway.Server的Class Library,它是配合服务端的。

为两个新建项目设置统一的命名空间

3、我们设计在客户端和服务端可以传输一个类,里面装着一个人的基本信息。

  在DataHighway.Client增加一个类,名为Person,在DataHighway.Client中生成Person.cs文件。

这个类要由客户端和服务端共享,而服务端并不支持System.Windows类库,所以在Person.cs中删除其System.Windows系列的引用。创建Person 类如下

 
 
 
 
  1. usingSystem;  
  2. usingSystem.Net;  
  3. namespaceDataHighway.Classes  
  4. {  
  5. publicclassPerson  
  6. {  
  7. publicstringName { get;set;}  
  8. publicintAge;  
  9. publicstringSchool { get;set;}  
  10. publicstringMajor { get;set;}  
  11. }  
  12. }  

  4、在DataHighway.Server项目中,添加Person.cs类的链接

  右键DataHighway.Server项目,选择Add-> Existing Item,找到DataHighway.Client文件夹中的Person.cs文件,选择Add As Link

5、在服务端添加WCF服务

  在DataHighway.Web项目中添加名为PersonService.svc的Silverlight-enabled WCF Service

  如下图

#p#

  6.在项目DataHighway.Web中添加到DataHighway.Server的引用(Add Reference)

  如下图所示

7. 创建WCF函数,返回Person类

在PersonService.svc.cs中修改代码

  首先添加引用命名空间

  usingDataHighway.Classes;

  然后修改PersonService.svc.cs代码如下:

 
 
 
 
  1. usingSystem;  
  2. usingSystem.Linq;  
  3. usingSystem.Runtime.Serialization;  
  4. usingSystem.ServiceModel;  
  5. usingSystem.ServiceModel.Activation;  
  6. usingDataHighway.Classes;  
  7. namespaceDataHighway.Web9{  
  8. [ServiceContract(Namespace ="")]  
  9. [SilverlightFaultBehavior]  
  10. [AspNetCompatibilityRequirements(RequirementsMode =AspNetCompatibilityRequirementsMode.Allowed)]  
  11. publicclassPersonService  
  12. {  
  13. [OperationContract]  
  14. publicPerson GetPerson()  
  15. {  
  16. returnnewPerson()  
  17. {  
  18. Name ="Jun Tang",  
  19. Age =20,  
  20. School ="University of Science and Technology of China",  
  21. Major ="Computer Science" 
  22. };  
  23. }  
  24. }  

  8.在客户端添加WCF服务引用

  将PersonService.svc设置为Start Page,按F5进入Debug模式,记下PersonService.svc的地址

  右键DataHighway工程,添加服务引用(Add Service Reference),将刚才保存的地址复制进去

单击Advanced,确认Reuse types in all referenced assemblies,如下图

9.设计UI界面

  使之能够明了的现实Person的各个属性

  10.在客户端使用WCF服务

  在客户端中添加引用(Add Reference)

在MainPage.xaml.cs中添加引用

  usingDataHighway.Classes;usingDataHighway.PersonServices;

  然后在MainPage.xaml.cs修改代码

 
 
 
 
  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Linq;  
  4. usingSystem.Net;  
  5. usingSystem.Windows;  
  6. usingSystem.Windows.Controls;  
  7. usingSystem.Windows.Documents;  
  8. usingSystem.Windows.Input;  
  9. usingSystem.Windows.Media;  
  10. usingSystem.Windows.Media.Animation;  
  11. usingSystem.Windows.Shapes;  
  12. usingDataHighway.Classes;  
  13. usingDataHighway.PersonServices;  
  14. namespaceDataHighway  
  15. {  
  16. publicpartialclassMainPage : UserControl  
  17. {  
  18. publicMainPage()  
  19. {  
  20. InitializeComponent();  
  21. ClientTest();  
  22. }  
  23. voidClientTest()  
  24. {  
  25. var client =newPersonServiceClient();  
  26. client.GetPersonCompleted +=(sender, ea) =>  
  27. {  
  28. textBoxName.Text =ea.Result.Name;  
  29. textBoxAge.Text =ea.Result.Age.ToString();  
  30. textBoxSchool.Text =ea.Result.School;  
  31. textBoxMajor.Text =ea.Result.Major;  
  32. };  
  33. client.GetPersonAsync();  
  34. }  
  35. }  

  11、将DataHighwayTestPage.html设置为Start Page,运行程序

  上图中是在客户端显示,而Jun Tang同学的个人信息却是从服务端通过WCF服务传过来的。

  目标圆满达成!

原文链接:http://www.cnblogs.com/rosting/archive/2011/09/08/2171867.html

文章名称:用WCF链接Silverlight客户端与服务端
本文路径:http://www.gawzjz.com/qtweb/news7/176807.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联