EnumBuilder Class
.NET Framework 2.0
Describes and represents an enumeration type.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Assembly: mscorlib (in mscorlib.dll)
'Declaration <ComVisibleAttribute(True)> _ <ClassInterfaceAttribute(ClassInterfaceType.None)> _ Public NotInheritable Class EnumBuilder Inherits Type Implements _EnumBuilder 'Usage Dim instance As EnumBuilder
/** @attribute ComVisibleAttribute(true) */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ public final class EnumBuilder extends Type implements _EnumBuilder
ComVisibleAttribute(true) ClassInterfaceAttribute(ClassInterfaceType.None) public final class EnumBuilder extends Type implements _EnumBuilder
The following code sample demonstrates the construction of an enumeration within a dynamic assembly, using EnumBuilder.
Imports System Imports System.Collections Imports System.Threading Imports System.Reflection Imports System.Reflection.Emit Public Class MyEnumBuilderSample Private Shared myAssemblyBuilder As AssemblyBuilder Private Shared myModuleBuilder As ModuleBuilder Private Shared myEnumBuilder As EnumBuilder Public Shared Sub Main() Try CreateCallee(Thread.GetDomain(), AssemblyBuilderAccess.Save) Dim myTypeArray As Type() = myModuleBuilder.GetTypes() Dim myType As Type For Each myType In myTypeArray Console.WriteLine("Enum Builder defined in the module builder is: " + myType.Name) Next myType Console.WriteLine("Enum TypeToken is :" + myEnumBuilder.TypeToken.ToString()) Console.WriteLine("Enum UnderLyingField is :" + myEnumBuilder.UnderlyingField.ToString()) Console.WriteLine("Enum UnderLyingSystemType is :" + myEnumBuilder.UnderlyingSystemType.ToString()) Console.WriteLine("Enum GUID is :" + myEnumBuilder.GUID.ToString()) myAssemblyBuilder.Save("EmittedAssembly.dll") Catch ex As NotSupportedException Console.WriteLine("The following is the exception is raised: " + ex.Message) Catch e As Exception Console.WriteLine("The following is the exception raised: " + e.Message) End Try End Sub 'Main Private Shared Sub CreateCallee(myAppDomain As AppDomain, access As AssemblyBuilderAccess) ' Create a name for the assembly. Dim myAssemblyName As New AssemblyName() myAssemblyName.Name = "EmittedAssembly" ' Create the dynamic assembly. myAssemblyBuilder = myAppDomain.DefineDynamicAssembly(myAssemblyName, _ AssemblyBuilderAccess.Save) ' Create a dynamic module. myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("EmittedModule", "EmittedModule.mod") ' Create a dynamic Enum. myEnumBuilder = myModuleBuilder.DefineEnum("MyNamespace.MyEnum", _ TypeAttributes.Public, GetType(Int32)) Dim myFieldBuilder1 As FieldBuilder = myEnumBuilder.DefineLiteral("FieldOne", 1) Dim myFieldBuilder2 As FieldBuilder = myEnumBuilder.DefineLiteral("FieldTwo", 2) myEnumBuilder.CreateType() End Sub 'CreateCallee End Class 'MyEnumBuilderSample
import System.*;
import System.Collections.*;
import System.Threading.*;
import System.Reflection.*;
import System.Reflection.Emit.*;
public class MyEnumBuilderSample
{
private static AssemblyBuilder myAssemblyBuilder;
private static ModuleBuilder myModuleBuilder;
private static EnumBuilder myEnumBuilder;
public static void main(String[] args)
{
try {
CreateCallee(System.Threading.Thread.GetDomain(),
AssemblyBuilderAccess.Save);
Type myTypeArray[] = myModuleBuilder.GetTypes();
Type myType = null;
for (int iCtr = 0; iCtr < myTypeArray.length;iCtr++ ) {
myType = myTypeArray[iCtr];
Console.WriteLine("Enum Builder defined in the module "
+ "builder is: " + myType.get_Name());
}
Console.WriteLine("Enum TypeToken is :"
+ myEnumBuilder.get_TypeToken().ToString());
Console.WriteLine("Enum UnderLyingField is :"
+ myEnumBuilder.get_UnderlyingField().ToString());
Console.WriteLine("Enum UnderLyingSystemType is :"
+ myEnumBuilder.get_UnderlyingSystemType().ToString());
Console.WriteLine("Enum GUID is :"
+ myEnumBuilder.get_GUID().ToString());
myAssemblyBuilder.Save("EmittedAssembly.dll");
}
catch (NotSupportedException ex) {
Console.WriteLine("The following is the exception is raised: "
+ ex.get_Message());
}
catch (System.Exception e) {
Console.WriteLine("The following is the exception raised: "
+ e.get_Message());
}
} //main
private static void CreateCallee(AppDomain myAppDomain,
AssemblyBuilderAccess access)
{
// Create a name for the assembly.
AssemblyName myAssemblyName = new AssemblyName();
myAssemblyName.set_Name("EmittedAssembly");
// Create the dynamic assembly.
myAssemblyBuilder = myAppDomain.DefineDynamicAssembly(myAssemblyName,
AssemblyBuilderAccess.Save);
// Create a dynamic module.
myModuleBuilder = myAssemblyBuilder.
DefineDynamicModule("EmittedModule", "EmittedModule.mod");
// Create a dynamic Enum.
myEnumBuilder = myModuleBuilder.DefineEnum("MyNamespace.MyEnum",
TypeAttributes.Public, Int32.class.ToType());
FieldBuilder myFieldBuilder1 = myEnumBuilder.DefineLiteral("FieldOne",
(Int32)1);
FieldBuilder myFieldBuilder2 = myEnumBuilder.DefineLiteral("FieldTwo",
(Int32)2);
myEnumBuilder.CreateType();
} //CreateCallee
} //MyEnumBuilderSample
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Community Additions
ADD
Show: