ПриМеЧание
Класс.SerializationBinder.позволяет.также.в.процессе.сериализации.менять.инфор-
мацию.о.сборке/типе.путем.переопределения.метода.BindToName .Данный.метод.
выглядит.следующим.образом:
public virtual void BindToName(Type serializedType,
out string assemblyName, out string typeName)
Во.время.сериализации.модуль.форматирования.вызывает.данный.метод,.пере-
давая.тип,.который.он.собирается.сериализовать .После.этого.вы.можете.передать.
(при.помощи.двух.параметров.out).сборку.и.тип,.которые.хотите.сериализовать.вы .
Если.же.в.параметрах.передаются.null.и.null.(именно.это.происходит.в.заданной.по.
умолчанию.реализации),.тип.и.сборка.остаются.без.изменений
Глава 25.
Взаимодействие
с компонентами WinRT
В Windows 8 появилась новая библиотека классов, при помощи которой приложе-
ния могут использовать функциональность операционной системы. Эта библио-
тека классов официально называется
Windows Runtime
(WinRT), а для работы с ее
компонентами применяется система типов WinRT. Многие задачи, для решения
которых создавалась WinRT, совпадают с задачами общеязыковой среды CLR в ее
исходном воплощении — например, упрощение разработки приложений и про-
стое взаимодействие с кодом, написанным на других языках программирования.
Компания Microsoft обеспечивает поддержку использования компонентов WinRT
в неуправляемом коде C/C++, в JavaScript (для виртуальной машины JavaScript
«Chakra» от Microsoft), а также в C# и Visual Basic.
На рис. 25.1 представлены различные возможности, предоставляемые компо-
нентами WinRT, и различные языки, поддерживаемые Microsoft для работы с ними.
Код приложений, написанных на неуправляемом C/C++, должен компилироваться
для каждой конкретной архитектуры процессора (x86, x64 и ARM). Разработчикам
Microsoft .NET Framework достаточно откомпилировать свой код в IL-код, чтобы
потом среда CLR преобразовала его в машинный код для конкретного процессора.
Разработчики JavaScript включают исходный код в свое приложение, а виртуальная
машина «Chakra» разбирает его и преобразует в машинный код конкретного про-
цессора. Другие компании тоже могут выпускать языки и среды, поддерживающие
взаимодействие с компонентами WinRT.
Приложения Windows Store и настольные приложения могут использовать
компоненты WinRT для обращения к функциональности операционной системы.
Пока количество компонентов WinRT, поставляемых как составная часть Windows,
относительно невелико по сравнению с размером библиотеки классов .NET
Framework. Впрочем, это вполне естественно, потому что компоненты ориентиро-
ваны на решение тех задач, с которыми операционная система справляется лучше
всего: предоставления разработчикам абстрактного представления оборудования
и средств взаимодействия между приложениями. Таким образом, большинство
компонентов WinRT предоставляет такие функции, как хранение информации,
сетевые операции, графика, мультимедиа, безопасность, многопоточность и т. д.
Другие базовые средства (например, операции со строками) и более сложные под-
системы (например, поддержка LiNQ) операционной системой не поддерживаются,
а предоставляются языком, используемым для работы с компонентами WinRT
операционной системы.
699
Взаимодействие.с.компонентами.WinRT
Windows 8
Модель приложения
Устройства
Графика и
мультимедиа
Хранение
информации
Сети
Безопасность Программные
потоки
Пользовательский
интерфейс
XAML
WinRT
CLR
“Chakra”
DirectX или XAML
XAML
HTML & CSS
C/C++
CRT
C#/VB
FCL
JS
WinJS
Do'stlaringiz bilan baham: |