好吧,經過大量搜索網絡後,我能夠通過彙總我找到的不同信息來編寫以下解決方案。
首先,Silverlight 4(如SL3)使用不同的機制在客戶端的網頁中創建Silverlight控件。它使用< object>標記。
要傳遞初始化參數,你只需要
<param name="initParams" value="key1=value1,key2=value2" />
添加到page.aspx文件(從Web項目)對象標記下和SL應用程序將在收到這些2個參數Silverlight應用程序啓動。
例如,使用從VS2010生成的默認aspx頁面:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/MyApp.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="key1=value1,key2=value2" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
要訪問SL應用程序的參數,你只需要編寫在App.xaml.cs文件中的以下內容:
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...
}
現在,這隻允許參數的靜態值。 要具有動態值,你只需要在initParam行更改爲:
<param name="initParams" value="<%= string.Format("WCFReferenceURL={0}", ConfigurationManager.AppSettings["WCFReferenceURL"])%>" />
從Web服務器上的配置文件中獲取值。 ;)
我希望這有助於一些可憐的靈魂在那裏!