代码改变世界

aspx传参给silverlight

2012-11-21 16:51  andy_zl  阅读(381)  评论(0)    收藏  举报

由于我们目前项目的webservice是由java写的.刚好这两天有空想自己弄下用silverlight的web项目下部署自己的wcf服务.供silverlight客户端调用.经过4天的辛苦日程,还有就是不断在网上查阅相关的资料终于把自己的这个项目做成功了!下面写下自己开发的过程...

在网上,博客园.CSDM中有3种关于向silverlight客户端传参的文章.

http://hi.baidu.com/haofz1983/item/1dcf7083bc20a4eae596e04a

http://blog.csdn.net/charlieguo/article/details/5054385大家可以参考下这两位大牛的文章来搭建自己的wcf项目.

以下是我整理的这3种方法的主要代码

1.最简单的传参直接写到网页的启动页面里。比如你的起始页为SilverlightDBDemoTestPage.aspx那么在页面里

 <form id="form1" runat="server" style="height:100%">
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    <param name="InitParams" value="serviceAddress=http://10.98.1.253:80/wcf/DBService.svc?wsdl" />
          <param name="source" value="ClientBin/SilverlightDBDemo.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.50826.0" />
    <param name="autoUpgrade" value="true" />
          <asp:Literal ID="SLInitParams" runat="server" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
      <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
    </a>
     </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>

红色的部分代码中的value属性就是往silverlight中传递的参数键值对,它的类型是IDictionary<string, string>的,当有多个值传递的时候格式为value="key1=http://10.98.1.253:80/wcf/DBService.svc?wsdl,key2=hehe,key3=hello";每个键值对用逗号分隔.然后再客户端的启动事件里面获取传递过来的参数值。

在App.cs文件中的Application_Startup事件中编写代码获取参数IDictionary<string, string> dics=e.InitParams;这样就获取到了刚才写在里面的参数。这种传参不太灵活。

由于时间原因不能把第二种通过获取配置文件信息传参和通过其他aspx传递过来的参数一一写下来,还望各位谅解.如有需要的朋友可以给我邮件:278717028@qq.com。