千家信息网

如何在Silverlight3中消耗WCF服务

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"如何在Silverlight3中消耗WCF服务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何在Silverlight3中消耗W
千家信息网最后更新 2026年11月02日如何在Silverlight3中消耗WCF服务

这篇文章主要讲解了"如何在Silverlight3中消耗WCF服务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何在Silverlight3中消耗WCF服务"吧!

消耗服务

VS2008的Silverlight工具提供了内置功能来创建用Silverlight激活的WCF服务并且在不需要编写大量代码的情况下消耗WCF服务。Silverlight 3现在支持二进制XML,这一功能可以用更快的速度把数据从服务器传到客户端。如果需要的话,标准SOAP信息也能被传送。

如果你以前消耗过一个ASP.NET ASMX Web 服务,那么你会觉得消耗WCF服务易如反掌。VS2008的新增服务引用对话框允许你选取该服务并在不编写大量代码的情况下生成客户端。生成代理前,要明白Silverlight只能调回到原始服务器,在原始服务器上,会默认提供Silverlight XAP应用程序文件。

如果你需要调用一个WCF服务,该服务可能存在于不同域或不同端口中,那么该服务必须拥有客户访问政策文件,文件名为clientaccesspolicy.xml,文件位于服务器低端。Silverlight会检查这个文件以查看是否该文件被允许执行跨域的调用。

下面的例一展示了一个样本文件:

< ?xml version="1.0" encoding="utf-8"?>   < access-policy> < cross-domain-access> < policy> < allow-from> < domain uri="*"/> < /allow-from> < grant-to> < resource path="/" include-subpaths="true"/> < /grant-to> < /policy> < /cross-domain-access> < /access-policy>

例一:客户访问政策文件可以放置到服务器低端以便允许Silverlight客户来调用处于不同域或运行于不同端口的服务。

为了创建一个WCF服务代理,你首先需要创建一个Silverlight应用程序项目。一旦该项目被创建好,你就可以右键单击项目,然后选择添加服务参考。如下所示,系统会提供Add Service Reference对话框,图一显示出Add Service Reference对话框可以在没有大量代码的情况下快速而简便地生成客户代理。

图一:

如果WCF服务位于相同的VS方案中,你可以点击Discover按钮。否则,你就要输入到达Address文本框中Web Service Description Language(WSDL)文件的路径。一旦文件被定位,你就可以给代理代码一个命名空间,然后点击确认按钮。

一旦客户代理被创建,你就可以调用Silverlight应用中的服务。要记住所有与Silverlight一起发生的网络操作都是异步的,因此服务被调用的时候,浏览器不会锁定。

例二展示了一个使用客户代码调用服务和绑定数据的示例:

 void MainPage_Loaded(object sender, RoutedEventArgs e)   {  //Create service proxy  WcfService.Service1Client proxy = new WcfService.Service1Client();  //Wire the proxy to a completed handler to allow the async operation to be handled  proxy.GetCustomerCompleted +=  new EventHandler< WcfService.GetCustomerCompletedEventArgs> (  proxy_GetCustomerCompleted);  //Call the service asynchronously  proxy.GetCustomerAsync(id);  }  void proxy_GetCustomerCompleted(object sender, SilverlightApplication1.WcfService.GetCustomerCompletedEventArgs e)  {  //Bind the returned data to the DataContext  this.DataContext = e.Result;  }

例二;使用一个客户代理对象来调用Silverlight中的WCF服务。

看一看例二中的代码,你可以看出代理对象是***被创建,然后通过一个事件驱动型模式,被名为proxy_GetCustomerCompleted的异步事件处理器捆绑起来。该服务通过援引GetCustomerAsync方法被异步调用。一旦服务返回了数据,调回方法会被自动调用,GetCustomerCompletedEventArgs参数会被访问以检索数据。在这个示例中,数据被直接绑定到应用程序的DataContext属性中。注意不需要有额外的操作来设定数据传递路线。代理会自动处理所有的事情。

Silverlight应用程序不能直接调用一个数据库,但是他们可以从一系列诸如WCF服务,ASMX服务和其他标准兼容等服务中存取数据。

感谢各位的阅读,以上就是"如何在Silverlight3中消耗WCF服务"的内容了,经过本文的学习后,相信大家对如何在Silverlight3中消耗WCF服务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

服务 文件 客户 消耗 数据 代理 代码 服务器 应用 不同 应用程序 情况 程序 对话框 项目 学习 对话 生成 原始 事件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技股 关于新基建和互联网科技 期待互联网科技 撒么互联网科技公司 互联网科技视频素材 人人互联网科技是培训 玖二柒互联网科技公司待遇 互联网科技产品 湖南诚度互联网科技有限公司 玉溪互联网科技怎么选 成都互联网科技公司工作好不好 未来五年的互联网科技 深圳市优智互联网科技有限公司 四川慕妮娅互联网科技有限公司 美国互联网科技实力 互联网金融科技公司的优势 智帮互联网科技公司最近动向 悟空问答互联网科技 安徽九吞吴互联网科技有限公司 恒生科技互联网指数十大成分股 蓝思科技飞鸽互联网 百单互联网科技有限公司 亿人帮互联网科技 哈尔滨秒房互联网科技有限公司 广州恒生互联网科技有限 互联网科技革命什么开始 互联网科技与大数据专业 深圳无忧互联网科技 科技互联网公司两年变化 青岛易易互联网科技
0