新聞中心
WCF作為一個.NET Framework 3.5的重要組成部分,其功能非常強大,可以幫助開發(fā)人員實現(xiàn)許多功能。在這里我們就可以先來了解一下PDA訪問WCF的相關步驟,希望可以幫助大家掌握這方面的知識。

成都創(chuàng)新互聯(lián)在網(wǎng)站設計、網(wǎng)站制作、app軟件開發(fā)、網(wǎng)站運營等方面均有出色的表現(xiàn),憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,我們更提供一系列成都全網(wǎng)營銷推廣,網(wǎng)站制作和網(wǎng)站推廣的服務,以推動各中小企業(yè)全面信息化,并利用創(chuàng)新技術幫助各行業(yè)提升企業(yè)形象和運營效率。
最近在做一個系統(tǒng),客戶端有兩種類型,有PC和PDA。為了能支持不同的平臺,并且復用業(yè)務邏輯,采用了WCF。PC及機部署的是WinForm的應用程序,比較容易。現(xiàn)在通過一個簡單的PDA訪問WCF例子說一下PDA如何做,注重的是這個過程。
現(xiàn)在從最開始的服務創(chuàng)建開始:
1、創(chuàng)建服務接口、定義服務端和客戶端之間的數(shù)據(jù)傳輸類
- [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;
- }
2、實現(xiàn)接口
PDA訪問WCF的功能非常的簡單,一個是將兩個數(shù)加起來,一個是構造一個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;
- }
- }
3、啟動服務端發(fā)布服務
當然PDA訪問WCF發(fā)布的方式很多,IIS、Windows Service和WinForm應用程序等都可以作為發(fā)布WCF的宿主程序。這里為了簡單,我使用console程序進行發(fā)布。最關鍵的還是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(); - 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();
- }
4、檢查服務是否已發(fā)布#t#
編譯后啟動服務端程序,使用“:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\WcfTestClient.exe”,可以檢查服務是否正常發(fā)布,當然也可以使用IE。我一般使用WcfTestClient.exe,它可以針對每個方法做測試。
5、創(chuàng)建PDA訪問WCF服務代理類
可以手動寫這部分代碼,如果不想自己寫代理類,那就下載NETCFv35PowerToys.msi并安裝,然后“:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin”會有一個程序NetCFSvcUtil.exe。通過cmd執(zhí)行“NetCFSvcUtil.exe http://localhost:8080/wcfService" ,\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin目錄下會出現(xiàn)生成的兩個文件CFClientBase.cs和WcfServcie.cs,這就是服務的代理類。需要注意的是WcfServcie.cs中”public static System.ServiceModel.EndpointAddress EndpointAddress = new System.ServiceModel.EndpointAddress("http://localhost:8080/wcfService");“,將”localhost“改為服務端的Ip。
6、創(chuàng)建SmartSeviceProject,平臺根據(jù)具體項目情況決定,然后將上面創(chuàng)建的兩個文件加入到項目中
- 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);- }
7、編譯SmartDevice項目后運行。打完,收工。以上就是對PDA訪問WCF的相關介紹。
網(wǎng)站名稱:PDA訪問WCF具體步驟淺析
網(wǎng)址分享:http://m.fisionsoft.com.cn/article/cdioeoi.html


咨詢
建站咨詢
