是否可以让网站向silverlight应用程序提供WCF配置?

是否可以让网站向silverlight应用程序提供WCF配置?,wcf,dynamic,parameters,silverlight-4.0,Wcf,Dynamic,Parameters,Silverlight 4.0,我正在开发一个与WCF服务通信的silverlight 4.0应用程序 WCF配置(端点,…)包含在ServiceReferences.ClientConfig文件中 但是,我希望silverlight应用程序从web服务器获取此配置,因为我不想重新编译应用程序或摆弄XAP文件(我知道它是一个zip文件),因为用户只允许配置web服务器,并且此配置会因服务器/站点而异 silverlight应用程序是否有办法从web服务器接收某种信息或从中获取此类数据?您当然可以覆盖端点。您可以在创建servi

我正在开发一个与WCF服务通信的silverlight 4.0应用程序

WCF配置(端点,…)包含在ServiceReferences.ClientConfig文件中

但是,我希望silverlight应用程序从web服务器获取此配置,因为我不想重新编译应用程序或摆弄XAP文件(我知道它是一个zip文件),因为用户只允许配置web服务器,并且此配置会因服务器/站点而异


silverlight应用程序是否有办法从web服务器接收某种信息或从中获取此类数据?

您当然可以覆盖端点。您可以在创建servicehost对象以使用服务()时指定新端点


您显然需要一个不变的根服务。这将在每个用户的基础上提供端点(否则端点将需要创建并存储在客户端应用程序中的用户设置)。

好的,在网络上进行了大量搜索后,我能够通过聚合找到的不同信息来编写以下解决方案

首先,Silverlight 4(与SL3类似)使用不同的机制在客户端的网页中创建Silverlight控件。它使用标记

要将初始化参数传递给silverlight应用程序,只需添加

<param name="initParams" value="key1=value1,key2=value2" />
目前,这只允许参数的静态值。 要获得动态值,只需将initParam行更改为:

<param name="initParams" value="<%= string.Format("WCFReferenceURL={0}", ConfigurationManager.AppSettings["WCFReferenceURL"])%>" />

从web服务器上的配置文件中获取值。;)

我希望这能帮助一些可怜的人

private void Application_Startup(object sender, StartupEventArgs e)
{
    var builder = new StringBuilder ();

    foreach (String key in e.InitParams.Keys)
        builder.AppendFormat ("from InitParams: {0} = {1}", 
                              key, e.InitParams[key]).AppendLine ();

    HtmlPage.Window.Alert (builder.ToString ());

    // Other code...
}
<param name="initParams" value="<%= string.Format("WCFReferenceURL={0}", ConfigurationManager.AppSettings["WCFReferenceURL"])%>" />