Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
.NET Framework включает набор типов отражения и членов для использования в приложениях магазина Windows 8.x. Эти типы и члены доступны в полной версии .NET Framework и в .NET для приложений Магазина Windows. В этой статье объясняется основные различия между этими и их коллегами в .NET Framework 4 и более ранних версиях.
При создании приложения магазина Windows 8.x необходимо использовать типы отражения и члены в .NET для приложений магазина Windows 8.x. Эти типы и члены также доступны, но не требуются для использования в классических приложениях, поэтому можно использовать один и тот же код для обоих типов приложений.
Загрузка TypeInfo и сборок
В .NET для приложений Магазина Windows 8.x класс TypeInfo содержит часть функциональности класса Type .NET Framework 4. Type Объект представляет ссылку на определение типа, а TypeInfo объект представляет сам определение типа. Это позволяет управлять Type объектами без обязательной загрузки сборки, на которой они ссылаются. Получение связанного TypeInfo объекта принуждает сборку загружаться.
TypeInfo содержит многие из членов, доступных в Type, а многие свойства отражения в .NET для приложений Магазина Windows 8.x возвращают коллекции объектов TypeInfo. Чтобы получить TypeInfo объект из Type объекта, используйте GetTypeInfo метод.
Методы запроса
В .NET для приложений магазина Windows 8.x используются свойства отражения, возвращающие IEnumerable<T> коллекции вместо методов, возвращающих массивы. Контексты отражения могут реализовывать отложенный обход этих коллекций для больших типов или сборок.
Свойства отражения возвращают только объявленные методы для определенного объекта вместо обхода дерева наследования. Кроме того, они не используют BindingFlags параметры для фильтрации. Вместо этого фильтрация выполняется в пользовательском коде с помощью запросов LINQ для возвращаемых коллекций. Для объектов отражения, которые возникают в среде выполнения (например, в результате typeof(Object)), обход дерева наследования лучше всего выполняется с помощью вспомогательных методов RuntimeReflectionExtensions класса. Потребители объектов из настраиваемых контекстов отражения не могут использовать эти методы и должны пройти по дереву наследования самостоятельно.
Ограничения
В приложении Магазина Windows 8.x доступ к некоторым типам и членам .NET Framework ограничен. Например, нельзя вызывать методы .NET Framework, которые не включены в .NET для приложений магазина Windows 8.x с помощью MethodInfo объекта. Кроме того, некоторые типы и члены, которые не считаются безопасными в контексте приложения Магазина Windows 8.x, также блокируются, как и члены Marshal и WindowsRuntimeMarshal. Это ограничение влияет только на типы и члены .NET Framework; вы можете вызывать ваш код или сторонний код, как обычно.