来个索引
SilverLight企业应用框架设计【四】实体层设计+为客户端动态生成服务代理(自己实现RiaService)
SilverLight企业应用框架设计【三】服务端设计
SilverLight企业应用框架设计【二】框架画面
SilverLight企业应用框架设计【一】整体说明
在上一节中讲到的自动生成的服务代理类核心代码,如下
大家注意到我们是通过ServiceInvoker来调用服务的
实例化ServiceInvoker类之后就注册了ServiceEventHandler事件
此事件是服务调用完成后触发的事件(silverlight 原生的ria service也有一个completed事件)
该事件相关代码如下
在si.PrepareInvoke把需要调用的服务类名,方法名,返回值类型(如果有参数,这里还会自动加入参数)
PrepareInvoke方法如下
在此方法中主要是记录下这些信息,
另外把服务需要传入的参数序列化成JSON字符串
紧接着就调用InvokeService方法
代码如下
明眼人一看就明了了
其实就是使用HTTPWebRequest来调用服务(服务端我们托管了HttpHandler的请求)
RequestReady事件如下:
在此事件中我们把服务类名方法名和参数写入了请求流
ResponseReady事件如下
这个事件把服务端返回的结果(JSON数据)反序列化成实体类型,并赋值给ServiceEventArgs
然后触发了Completed事件
也就是触发我们服务端代理类的si_Completed事件
至此,调用服务端的类就解释完了
下面我们看看是怎么调用服务端的
看看是不是与ria service调用的方法有点像呢?
…………………………………………………………………………喜欢的话……………请推荐吧………………………………………………………
估计再写一篇就完结了
下一篇公布源码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库