Почему типы WinRT должны быть запечатаны? - PullRequest
10 голосов
/ 21 сентября 2011

В нескольких местах (например, " Создание компонентов среды выполнения Windows для JavaScript, в C # и Visual Basic " в MSDN), я видел, что это указывало, что если вы пишете класс в .NET, то выхотите использовать из JavaScript, тогда вы должны сделать его запечатанным классом.

Это выглядит как произвольное ограничение.Почему JavaScript может работать только с закрытыми классами?

1 Ответ

7 голосов
/ 21 сентября 2011

Объекты среды выполнения Windows, открытые для приложений JavaScript, запечатаны с точки зрения JavaScript - вы не можете добавить свойства expando к объектам WinRT. Но из C ++ и C # объекты winrt могут наследоваться , если объект поддерживает наследование (например, большинство классов Xaml поддерживают наследование, но большинство других не поддерживают).

Причина, по которой объекты WinRT изолированы от JS, заключается в том, чтобы гарантировать, что объект winrt ведет себя одинаково независимо от того, что приложение сделало - если приложение переопределяет какое-либо свойство функции для объекта, это может привести к тому, что другие части приложения могут безобразничать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...