Есть две неправильные вещи.
Документация Silverlight
Документация Silverlight об этой области функциональности действительно запутана.Дело в том, что объект, предоставленный в качестве параметра sender в методе onLoad, не соответствует тому, что говорится в документации, это не плагин silverlight.
По крайней мере, это не плагинкак видно из HTML DOM / Javascript.Кажется, это какая-то форма Javascript API-версии элемента Framework.Чтобы получить полезный для нас объект плагина, нам нужно вызвать для него метод getHost
.
function onPluginLoaded(sender) {
var plugin = sender.getHost();
}
Это приблизит нас на один шаг.
ДоступЗарегистрированные объекты сценариев
Объекты сценариев, зарегистрированные в HTMLPage
, доступны как свойства свойства Content
плагина.Следовательно, чтобы получить доступ к ApplicationInfo
объекту, вам понадобится: -
function onPluginLoaded(sender) {
var plugin = sender.getHost();
var appInfo = plugin.Content.myapp.ApplicationInfo;
alert(appInfo.Name + " " + appInfo.Version);
}
Это поможет вам.
ScriptableType
Удалите [ScriptableType]
из MainPage
, в этом случае вы хотите пометить только определенные элементы как доступные для сценария, поэтому вы используете [ScriptableMember]
.Используя [ScriptableType]
, вы автоматически выставляете всех открытых участников в виде сценариев.Вы правильно делаете это на своем ApplicationInfo
.