Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Анализ метаданных типа Car
Анализ метаданных типа Car
Вот часть дампа типа Car, которая иллюстрирует следующее:
• способ определения полей в терминах метаданных .NET;
• представление методов в метаданных .NET;
• отображение свойства типа в пару специальных членов-функций.
TypeDef #3
-------------------------------------------------------------
TypDefName: CarLibrary.Car (02000004)
Flags: [Public] [AutoLayout] [Class] [Abstract] [AnsiClass] (00100081)
Extends: 01000002 [TypeRef] System.Object
Field #1
-------------------------------------------------------------
Field Name: petName (04000008)
Flags: [Family] (00000004)
CallCnvntn: [FIELD]
Field type: String
…
Method #1
-------------------------------------------------------------
MethodName:.ctor (06000001)
Flags: [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor] (00001886)
RVA: 0x00002050
ImplFlags: [IL] [Managed] (00000000)
CallCnvntn: [DEFAULT]
hasThis
ReturnType: Void
No arguments.
…
Property #1
-------------------------------------------------------------
Prop.Name: PetName (17000001)
Flags: [none] (00000000)
CallCnvntn: [PROPERTY]
hasThis
ReturnType: String
No arguments.
DefltValue:
Setter: (06000004) set_PetName
Getter: (06000003) get_PetName
0 Others
…
Прежде всего, отметьте то, что метаданные класса Car указывают базовый класс типа и включают различные флаги, использовавшиеся конструктором типа при его создании (такие как [public], [abstract] и т.п.). Методы (например, конструктор класса Car) описаны с учетом их имени, параметров и возвращаемого значения. Наконец, обратите внимание на то, что свойства представляются внутренними методами get_ /set_ с использованием меток Setter/Getter метаданных .NET. Как и следует ожидать, производные типы Car (это SportsCar и MiniVan) описываются аналогично.
- Анализ метаданных перечня EngineState
- Анализ TypeRef
- Использование CAST() с типами дата
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- 9.1. Проблема синтаксического анализа
- 2.12.2. Анализ усилительных каскадов в области малых времен
- Глава 5. Разработка и анализ бизнес-планов в системе Project Expert
- 4.4.3.3. План-фактный анализ продаж
- Перегрузка методов с несколькими параметрами типа
- Создание столбцов и работа с типами содержимого
- Кросс-категориальный анализ
- Пропуск параметров типа