Silverlight 5 initParams Count всегда равно 0
Я видел эту статью здесь в стеке и эту статью о Silverlight MSDN, но они не касаются Silverlight5. См. Ниже мой HTML-код div для хост-документа и код C# для его вызова. Я получаю "Данный ключ отсутствует в словаре". ошибка каждый раз, и .InitParams
количество объектов равно 0 каждый раз. Кто-нибудь знает решение для этого? Я чувствую, что это ошибка в Silverlight5 или что-то в этом роде. Кроме того, если у кого-то есть хороший чистый альтернативный способ получения информации из тега html-объекта host - я бы тоже это развлекал.
Разметка:
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300">
<param name="source" value="ClientBin/MySilverlightApplication.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="5.0.61118.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="rootLocation=someLocation" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
</div>
C# извлечение из статического свойства:
private const String rootLocation= "rootLocation";
internal String RootLocation {
get
{
String location = App.Current.Host.InitParams[rootLocation];
return location;
}
}
C# поиск из AppStartUp
событие:
private const String rootLocation= "rootLocation";
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
String location = e.InitParams[rootLocation];
}
1 ответ
У меня была такая же проблема после обновления решения до Silverlight 5. Оказалось, что, хотя вызывался app.xaml, WEB-проект утратил статус "Startup Project". Сброс этого заставил все работать снова.