Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Генерирование типа HelloClass и принадлежащей ему строковой переменной
Генерирование типа HelloClass и принадлежащей ему строковой переменной
Теперь вы понимаете роль метода ModuleBuilder.CreateType(), и пришло время выяснить, как сгенерировать открытый тип класса HelloWorld и приватную строковую переменную.
// Определение открытого класса MyAssembly.HelloWorld.
TypeBuilder helloWorldClass = module.DefineType("MyAssembly.HelloWorld", TypeAttributes.Public);
// Определение принадлежащей классу приватной переменной String
// с именем theMessage.
FieldBuilder msgField =hellоWоrldclass.DefineField("theMessage", typeof(string), FieldAttributes.Private);
Обратите внимание на то, что метод TypeBuilder.DefineField() обеспечивает доступ к типу FieldBuilder. Класс TypeBuilder определяет также другие методы, обеспечивающие доступ к другим типам "построителя". Например, DefineConstructor() возвращает ConstructorBuilder.DefineProperty() – PropertyBuilder и т.д.
- Исследование пространства имен System.Reflection.Emit
- Роль System.Reflection.Emit.ILGenerator
- Генерирование динамического компоновочного блока
- Генерирование компоновочного блока и набора модулей
- Роль типа ModuleBuilder
- Генерирование типа HelloClass и принадлежащей ему строковой переменной
- Генерирование конструкторов
- Генерирование метода HelloWorld()
- Использование динамически сгенерированного компоновочного блока
- Почему необходима миграция
- Почему так важен справедливый процесс?
- Почему потенциальные покупатели лгут?
- Использование переменной окружения ISC_PATH
- Использование CAST() с типами дата
- Пример применения метода «пять почему»
- Генерирование исключений
- Почему я написал эту книгу
- Перегрузка методов с несколькими параметрами типа
- Создание столбцов и работа с типами содержимого
- Глава 14. Почему потребительский опыт играет важную роль в выстраивании клиентских взаимоотношений
- Пропуск параметров типа