Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы C#.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
609 Кб
Скачать
☆

Основы c#. Урок 73. Reflection - создание enum'ов

При динамическом создании перечисления мы действуем аналогично созданию классов. Только вместо класс TypeBuilder мы используем для создания перечисления EnumBuilder, в который потом добавляем нужные члены вместе с числовыми значениями.

Вот пример:

// Создание имени сборки.

AssemblyName an = new AssemblyName("MyAssembly");

an.Version = new Version("1.0.0.0");

// Создание сборки.

AssemblyBuilder ab;

ab = AppDomain.CurrentDomain.DefineDynamicAssembly(an, AssemblyBuilderAccess.Save);

// Создание модуля в сборке.

ModuleBuilder mb = ab.DefineDynamicModule("MyModule", "My.dll");

// Создание типа в сборке.

EnumBuilder tb = mb.DefineEnum( "MyColors", TypeAttributes.Public, typeof(int));

// Добавление членов в перечисление.

tb.DefineLiteral("Red", 0);

tb.DefineLiteral("Pink", 1);

tb.DefineLiteral("Green", 2);

// Непосредственное создание типа.

tb.CreateType();

// Сохранение типа в файл.

ab.Save("My.dll");

После выполнения этог кода в папке вашего проекта образуется файл My.dll, внутри которого будет enum с именем MyColors, содержащий значения Red, Pink и Green.

71