Defining an Enum with Reflection Emit
Enumerations, or enums, are defined in the scope of a dynamic module using the ModuleBuilder.DefineEnum method. DefineEnum returns an EnumBuilder.
An enumeration field is defined using the EnumBuilder.DefineLiteral method, as demonstrated by the code example for that method.
Before the enumeration is used, the EnumBuilder.CreateType method must be called. CreateType completes the creation of the enumeration.
Note
In the .NET Framework versions 1.0 and 1.1, it is necessary to define enumerations using TypeBuilder because EnumBuilder emits enumerations whose elements are of type Int32 instead of the enumeration type. In the .NET Framework version 2.0, EnumBuilder emits enumerations whose elements have the correct type.