LocationCollection не помечен как ScriptableType, но может быть создан в script (как так получилось?)
-
19-09-2019 - |
Вопрос
Я работаю над небольшим приложением silverlight, которое включает в себя передачу некоторых данных между javascript и silverlight.Я также использую silverlight virtual earth control.
Странность, с которой я столкнулся, заключается в том, что можно зарегистрировать Microsoft.Maps.MapControl.LocationCollection как скрипт создает тип, создает экземпляр и передает его в ScriptableMember.Это здорово, но я не вижу, где LocationCollection помечен как ScriptableType - я упускаю что-то очевидное.
Код в App.xaml.cs - Application_Startup
HtmlPage.RegisterCreateableType("mapLocationCollection", typeof(Microsoft.Maps.MapControl.LocationCollection));
Код Javascript, который работает!
var locs = SLPlugin.Content.services.createObject('mapLocationCollection');
Я подумал, что для создания экземпляра класса в JavaScript тип должен быть помечен как [ScriptableType], а тип должен быть зарегистрирован как создаваемый тип.Насколько я могу судить, LocationCollection (или любой из его суперклассов) имеет этот атрибут.
Может ли кто-нибудь помочь мне разобраться в этом в моем сознании?
Решение
Нет в ScriptableType
атрибут указывает, что все общедоступные свойства, методы и события данного типа доступны для написания сценариев.Это просто избавляет от необходимости отмечать их все с помощью ScriptableMember
.