消耗服务
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> < palicy> < allow-from> < domain uri="*"/> < /allow-from> < grant-to> < resource path="/" include-subpaths="true"/> < /grant-to> < /policy> < /cross-domain-access> < /access-policy> |
为了创建一个WCF服务代理,你首先需要创建一个Silverlight应用程序项目。一旦该项目被创建好,你就可以右键单击项目,然后选择添加服务参考。如下所示,系统会提供Add Service Reference对话框,图一显示出Add Service Reference对话框可以在没有大量代码的情况下快速而简便地生成客户代理。
