Анализ метаданных перечня EngineState
Анализ метаданных перечня EngineState
Каждый тип, определенный в компоновочном блоке, обозначен маркером "TypeDef #n" (где TypeDef – это сокращение от type definition, что в переводе означает определение типа). Если описываемый тип использует тип, определённый в рамках другого компоновочного блока .NET, то для ссылки на такой тип используется "TypeRef #n" (где TypeRef – это сокращение от type reference, в переводе ссылка на тип). Если хотите, TypeRef можно считать указателем на полное определение метаданных соответствующего типа. По существу, метаданные .NET представляют собой множество таблиц, явно описывающих все определения типов (TypeDef) и все типы, на которые имеются ссылки (TypeRef). Все это можно увидеть в окне просмотра метаданных ildasm.exe.
В случае CarLibrary.dll одно из описаний TypeDef в метаданных соответствуeт перечню CarLibrary.EngineState (у вac номер TypeDef может быть другим: нумерация TypeDef соответствует порядку, в котором компилятор C# обрабатывает соответствующие типы).
TypeDef #1
-------------------------------------------------------------
TypDefName: CarLibrary.EngineState (020000002)
Flags: [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] (00000101)
Extends: 01000001 [TypeRef] System.Enum
…
Field #2
-------------------------------------------------------------
Field Маше: engineAlive (04000002)
Flags: [Public] [Static] [Literal] [HasDefault] (00008056)
DefltValue: (I4) 0
CallCnvntn: [FIELD]
Field type: ValueClass CarLibrary.EngineState
…
Метка TypDefName используется для имени типа. Метка метаданных Extends используется для указания базового класса данного типа .NET (в данном случае это тип System.Enum, обозначенный как TypeRef). Каждое поле перечня обозначено меткой "Field #n". Для примера здесь представлены только метаданные поля EngineState.engineAlive.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Урок № 96. Анализ счета и анализ субконто
Урок № 96. Анализ счета и анализ субконто Анализ счета также относится к числу популярных отчетов программы "1С". Чтобы сформировать этот отчет, нужно выполнить команду главного меню Отчеты | Анализ счета, затем в открывшемся окне указать отчетный период, счет и
10.1. Анализ
10.1. Анализ Определение границ задачи Требования к системе складского учета показаны на врезке. Это достаточно сложная программная система, затрагивающая все аспекты, связанные с движением товара на склад и со склада. Для хранения продукции служит, естественно, реальный
12.1. Анализ
12.1. Анализ Определение границ проблемной области Для большинства люден, живущих в США, поезда являются символом давно ушедшей эпохи. В Европе и странах Востока ситуация совершенно противоположная. В отличие от США, в Европе мало национальных и международных
Роль метаданных типов .NET
Роль метаданных типов .NET Кроме CIL-инструкций, компоновочный блок .NET содержит исчерпывающие и точные метаданные, описывающие все его типы (классы, структуры, перечни и т.д.), определенные в бинарном объекте, и все члены каждого типа (свойства, методы, события и т.д.). К счастью,
Тип перечня
Тип перечня Перечень - это удобная программная конструкция, в которой группируются пары "имя-значение". Предположим, вы создаете видеоигру, в которой игроку позволяется выбрать персонажа в одной из трех категорий: Wizard (маг), Fighter (воин) или Thief (мошенник). Вместо того чтобы
Просмотр метаданных типов
Просмотр метаданных типов Если вы захотите просмотреть метаданные типов для загруженного в настоящий момент компоновочного блока, просто нажмите ‹Ctrl+M›. На рис. 1.8 показаны метаданные для метода Calc.Add(). Рис. 1.8. Просмотр метаданных типов с помощью
Просмотр метаданных компоновочных блоков
Просмотр метаданных компоновочных блоков Наконец, если вы захотите просмотреть содержимое манифеста компоновочного блока, то вам нужно двойным щелчком открыть пиктограмму MANIFEST (рис. 1.9). Рис. 1.9. Двойной щелчок на этой строке покажет манифест компоновочного блокаНе
Анализ метаданных типов
Анализ метаданных типов Наконец, если вы сейчас нажмете комбинацию клавиш ‹Ctrl+M›, ildasm.exe отобразит метаданные для каждого из типов, имеющихся в компоновочном блоке CarLibrary.dll (рис. 11.8). Рис. 11.8. Метаданные для типов на CarLibrary.dllТеперь, после того как мы с вами заглянули внутрь
Анализ метаданных типа Car
Анализ метаданных типа Car Вот часть дампа типа Car, которая иллюстрирует следующее:• способ определения полей в терминах метаданных .NET;• представление методов в метаданных .NET;• отображение свойства типа в пару специальных членов-функций. TypeDef
Представление метаданных компоновочного блока
Представление метаданных компоновочного блока Окно метаданных ildasm.exe позволяет также просмотреть метаданные самого компоновочного блока, для обозначения которых используется метка Assembly. Следующий фрагмент листинга показывает, что информация, представленная в таблице
Создание пользовательского приложения для просмотра метаданных
Создание пользовательского приложения для просмотра метаданных Чтобы очертить общие контуры процесса отображения (а также привести пример использования System.Type), мы создадим консольное приложение, которое назовем MyTypeViewer. Эта программа будет отображать подробную
Извлечение метаданных
Извлечение метаданных В командной строке вы можете использовать режим -extract для вывода операторов DDL, которые определяют метаданные в базе данных.Все зарезервированные слова и объекты извлекаются в файл в виде символов в верхнем регистре, если только локальный язык не
Копирование только метаданных
Копирование только метаданных Копирование только метаданных обычно требуется для создания "пустой" базы данных, когда вы готовы поставлять систему пользователям, загружать данные или восстанавливать базу с целью миграции. Следующая команда выполняет копирование
2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ
2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ Задача оптимизации разработки программ состоит в достижении целей при минимально возможной затрате ресурсов.Системный анализ в отличие от предварительного системного исследования — это