flex wcf 数据传输
发布时间:2020-12-15 04:09:23 所属栏目:百科 来源:网络整理
导读:最近跟哲子做个项目,本来可以用Asp.net轻松搞定,但是鉴于大家都比较想试用下学习已久的技术,所以便出现了Flex与WCF +Entity这样得前后台组合。项目开始之初,着实为两者之间的交互头疼一番,在经过大量资料得获取后,终于解决,以下写出简要的注意事项,
最近跟哲子做个项目,本来可以用Asp.net轻松搞定,但是鉴于大家都比较想试用下学习已久的技术,所以便出现了Flex与WCF +Entity这样得前后台组合。项目开始之初,着实为两者之间的交互头疼一番,在经过大量资料得获取后,终于解决,以下写出简要的注意事项,由于WCF 我还是个彻头彻尾的门外汉,数据访问层的东西,只是把“欢”的部分代码贴出来供大家借鉴之用
????首先是WCF的app.config,这个是重中之重,因为Flex支持的Soap协议为1.1版本,所以WCF发布的WebService也应该为相应的版本。配置方法,主要是将“endpoint ”节点中“binding”项设置为“basicHttpBinding”即可 下面是“欢”的一段C#代码 [c#] /// /// 获得数据库中所有用户的信息 /// /// 用户列表,失败返回null public List GetAllUsers() { List list = new List(); using (KnowledgeBaseEntities knowledge = new KnowledgeBaseEntities()) { try { foreach (var p in knowledge.User) { UserInfo user = new UserInfo(); user.userName = p.UserName; user.password = p.Password; UserInformation userinfomation = knowledge.UserInformation.First(q => q.UserName == p.UserName); user.readAuthority = userinfomation.ReadAuthority; user.uploadAuthority = userinfomation.UploadAuthority; list.Add(user); } return list; } catch (Exception) { return null; } } } [/c#] PLAIN TEXT ACTIONSCRIPT: package wbt.command { ? import com.adobe.cairngorm.commands.ICommand; ? import com.adobe.cairngorm.control.CairngormEvent; ? ? import mx.collections.ArrayCollection; ? import mx.controls.Alert; ? import mx.managers.CursorManager; ? import mx.rpc.Responder; ? import mx.rpc.events.FaultEvent; ? import mx.rpc.events.ResultEvent; ? import mx.rpc.soap.WebService; ? ? import wbt.model.wbtModelLocator; ? import wbt.vo.userVO; ? ? public class userListCommand implements ICommand ? { ? ? //cairngorm框架中的数据Model ? ? private var _model:wbtModelLocator = wbtModelLocator.getInstance(); ? ? public var service:WebService = new WebService(); ? ? public function userListCommand() ? ? { ? ? } ? ? public function execute(event:CairngormEvent):void ? ? { ? ? ? CursorManager.setBusyCursor();//在读取数据时设置鼠标状态为忙 ? ? ? service.loadWSDL("再此填入WebService的WSDL地址"); ? ? ? service.addEventListener(ResultEvent.RESULT,onResult); ? ? ? service.addEventListener(FaultEvent.FAULT,onFault); ? ? ? service.GetAllUsers();//getAllUsers为WebService提供得方法 ? ? } ? ? internal function onResult(event:ResultEvent):void ? ? { ? ? ? _model.userList.removeAll();//读取成功前要将数据清空,再重新填入 ? ? //下面为将数据结果填充到model ? ? var tempArr:ArrayCollection ? ? ? ? ? ? ? ? ? ?= service.GetAllUsers.lastResult as ArrayCollection; ? ? ? for(var i:int=0;i? ? ? { ? ? ? ? var ob:Object = tempArr.getItemAt(i); ? ? ? ? var tempUser:userVO = new userVO(); ? ? ? ? tempUser.UserName = ob.userName; ? ? ? ? tempUser.ReadAuthority = ob.readAuthority; ? ? ? ? tempUser.UploadAuthority = ob.uploadAuthority; ? ? ? ? _model.userList.addItem(tempUser); ? ? ? } ? ? ? CursorManager.removeAllCursors(); ? ? ? service.disconnect();//关闭连接是个好习惯 ? ? } ? ? internal function onFault(event:FaultEvent):void ? ? { ? ? ? Alert.show(event.fault.faultDetail.toString()); ? ? } ? ? } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |