Silverlight中使用配置文件方法

Silverlight Application是客户端程序,没有也无法访问服务端的web.config,它自己也不允许添加.config文件,那如何方便地更改配置而不用重新发布呢?找了许多地方,基本上总结出来一个办法。

一般情况下,SL App是由一个Web Application来host的,而那个Web Application是可以方便地配置的,于是,我们可以考虑由网站来把配置传给Silverlight。

具体方法,SL对象在网页中是用一个object来定义的,如

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
    width="100%" height="100%">
    <param name="source" value="ClientBin/TestProject.Shell.xap" />
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.41108.0" />
    <param name="autoUpgrade" value="true" />
    <param name="InitParams" value="serviceAddress=http://localhost:8028/GeneralService.svc" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.41108.0" style="text-decoration: none">
        <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight"
            style="border-style: none" />
    </a>
</object>
可以看到其中有一个param标签的name为InitParams,其值可以在App.xaml.cs中的Application_Startup事件处理方法中,使用传入StartupEventArgs参数的InitParams属性取得,类型为IDictionary<string, string>。如上面的例子里,我就可以用e.InitParams["serviceAddress"]取得我设置的服务地址http://localhost:8028/GeneralService.svc

posted on 2009-12-17 01:21  Gildor Wang  阅读(1011)  评论(0编辑  收藏  举报

导航