Web服务小姐的嫁衣 (五)

作者:   出处:互联网   2015-07-06 10:50:22   阅读:3

WCF先生弯下腰去系鞋带,不禁为眼前的景色所吸引。粉红色的凉鞋晶莹剔透,白里透红的长腿透着健康的气息,由于距离近,看得很清楚,每一寸肌肤都洁白无暇,充满着弹性。


 

系好了吗? , 正看得入神,Web Service小姐的声音从桌子上传来。


 

马上好了 , WCF先生慌忙系好鞋带,直起身子来。看见Web Service小姐看着他笑,有些发毛。


 

头发可以养鸟了 , Web Service小姐笑着说。


 

WCF先生摸了一下,发现头发被桌子压得乱成一团,俨然一个鸡窝,不好意思的用手梳理了一下。


 

还有这里 , Web Service小姐用手将他右边的一缕竖起来的头发压了下去,如同春风吹低了野草。


 

是猪,呼噜噜,不服和比腿粗... ,旁边座位一个少女的手机响了起来。


 

AJAX! , Web Service小姐惊呼了一声。


 

AJAX是猪吗? , WCF先生不解的问。


 

讨厌! 他最近在给一家猪场做网站,最近几天会从这里拿数据 ,Web Service小姐略带忧色的说。


 

不用担心,现在们就可以弄一下。 ,最难消受美人恩,WCF先生踊跃的回答。


 

以前的那个服务留以后复习用吧,们新建一个服务。首先建立猪和猪圈的类。 , WCF先生建立了两个类:Pig和PigPool。


 


 

然后建立服务接口. , 照葫芦画瓢,WCF先生很快创建了IPigService接口.


 


 

注意接口级别的Namespace和Name,这个很重要,WCF会根据这个属性生成客户端的类;还有方法上不能应用UriTemplate标记。 , WCF先生指着代码解说道。


 


 

然后是具体的实现类 , WCF先生打开PigService.svc.cs,添加了GetAllPigs方法和AddPig方法。


 

using System;   using System.Collections.Generic;   using System.Linq;   using System.Runtime.Serialization;   using System.ServiceModel;   using System.Text;   namespace WcfService1   {   // NOTE: You can use the  Rename  command on the  Refactor  menu to change the class name  PigService  in code, svc and config file together.   [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]   publicclassPigService : IPigService   {   privatePigPool GetPigs()   {   PigPool pigs = newPigPool();   pigs.Add(newPig()   {   Name =  Pig1 ,   Weight = 150,   Sex =  Male    });   pigs.Add(newPig()   {   Name =  Pig2 ,   Weight = 150,   Sex =  Female    });   return pigs;   }   publicPigPool GetAllPigs()   {   return GetPigs();   }   publicPigPool AddPig(Pig pig)   {   PigPool ret = GetPigs();   ret.Add(pig);   return ret;   }   }   } 


 

好了? , Web Service睁着顾盼流连的大眼睛问道。


 

还不够,们还需要更改web.config让它支持AJAX. , WCF先生打开web.config,添加了如下的内容。


 


 

这些设置就是告诉服务器,http://localhost:20408/PigService.svc这个服务需要支持AJAX,服务器会根据们刚才定义的类,自动生成对应的Javascript类供AJAX调用。 ,WCF先生用鼠标在web.config上滑动,看着Web Service小姐说。


 

说曹操曹操就到. , Web Service小姐指着窗外。AJAX先生背着背包,骑着山地自行车,飞也似的奔腾在回家的路上。


 

好吧 ,WCF先生无奈的说。


 

现在们就来看看AJAX怎么用们提供的服务吧。 , WCF创建了一个新页面。


 


 

们在上面放两个按钮,一个用来获取所有猪的信息,一个用来添加猪的信息,还有一个div用来显示返回的结果。 , WCF先生创建了界面。


 


 

在页面上加一个ScriptManager,这个是进行AJAX操作必备的,在里面加一个Service, 地址就是刚才在web.config里面定义的endpoint.


 


 

添加Javascript函数,注意这里类的使用,与在服务器端类似,非常方便。不过这里是异步调用。


 


 

再好好看看。 , Web Service用小巧的手拿过鼠标,看了WebForm2.aspx大概 5分钟左右,才读懂其中的意思。


 

 %@PageLanguage= C# AutoEventWireup= true CodeBehind= WebForm2.aspx.cs Inherits= WcfService1.WebForm2 %     !DOCTYPEhtmlPUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd     htmlxmlnshtmlxmlns= http://www.w3.org/1999/xhtml     headidheadid= Head1 runat= server     title /title     /head     body     formidformid= form1 runat= server     asp:ScriptManagerIDasp:ScriptManagerID= ScriptManager1 runat= server     Services     asp:ServiceReferencePathasp:ServiceReferencePath= http://localhost:20408/PigService.svc /     /Services     /asp:ScriptManager     scripttypescripttype= text/javascript language= javascript    function getAllPigs() {   var myProxy = new wcfservice1.Services.PigService();   myProxy.GetAllPigs(onSuccessGetCars, onFailGetCars, myProxy);   }   function onSuccessGetCars(result) {   var allPigs =  ;   for (var i = 0; i   result.length; i++) {   allPigs +=     + result[i].Name +     + result[i].Weight +     + result[i].Sex;   } $get( divAllPigs ).innerText = allPigs;   }   function onFailGetCars(result) {   alert(result);   }   function addPig() {   var myProxy = new wcfservice1.Services.PigService();   var myPig = new WcfService1.Pig();   myPig.Name =  Pig 3 ;   myPig.Weight = 158;   myPig.Sex =  Female ;   myProxy.AddPig(myPig, onSuccessAdd, onFailAdd, myProxy);   }   function onSuccessAdd(result) {   var allPigs =  ;   for (var i = 0; i   result.length; i++) {   allPigs +=     + result[i].Name +     + result[i].Weight +     + result[i].Sex;   } $get( divAllPigs ).innerText = allPigs;   }   function onFailAdd(result) {   alert(result);   }    /script     div     div inputtypeinputtype= button value= Get All Pigs onclick= getAllPigs() / nbsp; nbsp; inputtypeinputtype= button value= Add a Pig onclick= addPig() / /div     div Result: /div     dividdivid= divAllPigs >

试一下 , WCF先生拿过鼠标,上面还残留着Web Service小姐的体温,在浏览器中打开WebForm2.aspx。



看,两头猪返回了。 , WCF先生点了一下Get All Pigs按钮说。



加一头猪。 , WCF先生点了一下Add A Pig按钮。返回结果中除了刚才的两头猪,又多了一条158斤重的母猪。



这时,穿着暗红色套装的服务员拿着菜单走了过来,对WCF先生说: 对不起先生,们这里没有烤全猪。要不您点个别的? ,两人一愣,原来刚才说 加一头猪 引起了误会。


WCF先生活动了一下脚,发现还是很痛。对面的Web Service小姐拿着鼠标在翻着代码。


你在找什么? , WCF先生奇怪的问。


在找JavaScript代码,们写的是C#代码,肿么就能直接被AJAX调用了? , Web Service小姐头也不抬的说道。



有思想! , WCF先生赞叹道。


现在们直接在IE里访问一下EndPoint。 , WCF先生在IE里输入http://localhost:20408/PigService.svc。



看不出来什么。 , Web Service小姐看了一下输出的结果说。


嗯,是没什么。们在网址的后面加上/js看看。 , WCF先生敲入了新网址。



再加上/jsdebug看看 ,WCF先生将/js改成/jsdebug,结果还是一样。



这就是奥妙所在了,服务器会自动根据C#代码生成JavaScript类,然后AJAX就可以调用生成的JavaScript类。 ,WCF先生边画示意图边说。



明白了。 , Web Service小姐直视着WCF先生,高兴的说。她甜甜的笑,清爽而动人。


脚一时好不了了,WCF先生只好请Web Service小姐帮忙。有了她的搀扶,路好走多了,虽然花了将近30分钟时间才到家,但是感觉只有几分钟,留在身上的清香恐怕要让他沉醉一阵子了。


到了家门口,WCF先生打开灯,柔和的灯光洒在Web Service小姐的身上,显得更加柔美了。


到屋里坐坐吧 ,WCF先生忍不住邀请道..

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat