使用WCF建立起Silverlight客户端与服务端的桥梁
最近正在開發一個項目,需要應用到Silverlight以及數據庫。在正式開工之前需要掌握將數據從服務端送到客戶端的技術,我們采用建立WCF服務的方法。
“做中學”是最好的學習方法,真正實踐之后學習者將會有更多的自信和把握,這種感覺將激勵他更好的走下去,這也就是“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 using System;2 using System.Net;
3
4 namespace DataHighway.Classes
5 {
6 public class Person
7 {
8 public string Name { get; set; }
9 public int Age;
10 public string School { get; set; }
11 public string Major { get; set; }
12 }
13 }
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
如下圖
6.在項目DataHighway.Web中添加到DataHighway.Server的引用(Add Reference)
如下圖所示
7. 創建WCF函數,返回Person類
在PersonService.svc.cs中修改代碼
首先添加引用命名空間
using DataHighway.Classes;
然后修改PersonService.svc.cs代碼如下:
1 using System;2 using System.Linq;
3 using System.Runtime.Serialization;
4 using System.ServiceModel;
5 using System.ServiceModel.Activation;
6 using DataHighway.Classes;
7
8 namespace DataHighway.Web
9 {
10 [ServiceContract(Namespace = "")]
11 [SilverlightFaultBehavior]
12 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
13 public class PersonService
14 {
15 [OperationContract]
16 public Person GetPerson()
17 {
18 return new Person()
19 {
20 Name = "Jun Tang",
21 Age = 20,
22 School = "University of Science and Technology of China",
23 Major = "Computer Science"
24 };
25 }
26 }
27 }
8.在客戶端添加WCF服務引用
將PersonService.svc設置為Start Page,按F5進入Debug模式,記下PersonService.svc的地址
http://localhost:25688/PersonService.svc
右鍵DataHighway工程,添加服務引用(Add Service Reference),將剛才保存的地址復制進去
單擊Advanced,確認Reuse types in all referenced assemblies,如下圖
9.設計UI界面
使之能夠明了的現實Person的各個屬性
10.在客戶端使用WCF服務
在客戶端中添加引用(Add Reference)
在MainPage.xaml.cs中添加引用
using DataHighway.Classes;using DataHighway.PersonServices;
然后在MainPage.xaml.cs修改代碼
1 using System;2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Net;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Documents;
8 using System.Windows.Input;
9 using System.Windows.Media;
10 using System.Windows.Media.Animation;
11 using System.Windows.Shapes;
12 using DataHighway.Classes;
13 using DataHighway.PersonServices;
14
15 namespace DataHighway
16 {
17 public partial class MainPage : UserControl
18 {
19 public MainPage()
20 {
21 InitializeComponent();
22 ClientTest();
23 }
24 void ClientTest()
25 {
26 var client = new PersonServiceClient();
27 client.GetPersonCompleted += (sender, ea) =>
28 {
29 textBoxName.Text = ea.Result.Name;
30 textBoxAge.Text = ea.Result.Age.ToString();
31 textBoxSchool.Text = ea.Result.School;
32 textBoxMajor.Text = ea.Result.Major;
33 };
34 client.GetPersonAsync();
35 }
36
37 }
38 }
11、將DataHighwayTestPage.html設置為Start Page,運行程序
上圖中是在客戶端顯示,而Jun Tang同學的個人信息卻是從服務端通過WCF服務傳過來的。
目標圓滿達成!
轉載于:https://www.cnblogs.com/rosting/archive/2011/09/08/2171867.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用WCF建立起Silverlight客户端与服务端的桥梁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老是梦到前男友说明什么
- 下一篇: 梦到养鱼是什么兆头