LocationCollection не помечен как ScriptableType, но может быть создан в сценарии (как это получается?) - PullRequest
1 голос
/ 06 января 2010

Я работаю над небольшим приложением silverlight, которое включает передачу некоторых данных между javascript и silverlight. Я также использую виртуальный контроль Земли Silverlight.

Странность, с которой я столкнулся, заключается в том, что можно зарегистрировать 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 (или любой из его суперклассов) имеют этот атрибут.

Может ли кто-нибудь помочь мне понять это?

1 Ответ

0 голосов
/ 06 января 2010

Нет атрибута ScriptableType указывает, что все общедоступные свойства, методы и события для типа являются сценариями. Это просто экономит, пометив их всех ScriptableMember.

...