EnumBuilder 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述并表示一个枚举类型。
public ref class EnumBuilder sealed : Typepublic ref class EnumBuilder sealed : System::Reflection::TypeInfopublic ref class EnumBuilder abstract : System::Reflection::TypeInfopublic ref class EnumBuilder sealed : Type, System::Runtime::InteropServices::_EnumBuilderpublic ref class EnumBuilder sealed : System::Reflection::TypeInfo, System::Runtime::InteropServices::_EnumBuilderpublic sealed class EnumBuilder : Typepublic sealed class EnumBuilder : System.Reflection.TypeInfopublic abstract class EnumBuilder : System.Reflection.TypeInfo[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class EnumBuilder : Type, System.Runtime.InteropServices._EnumBuilder[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class EnumBuilder : Type, System.Runtime.InteropServices._EnumBuilder[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class EnumBuilder : System.Reflection.TypeInfo, System.Runtime.InteropServices._EnumBuildertype EnumBuilder = class
    inherit Typetype EnumBuilder = class
    inherit TypeInfo[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type EnumBuilder = class
    inherit Type
    interface _EnumBuilder[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type EnumBuilder = class
    inherit Type
    interface _EnumBuilder[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type EnumBuilder = class
    inherit TypeInfo
    interface _EnumBuilderPublic NotInheritable Class EnumBuilder
Inherits TypePublic NotInheritable Class EnumBuilder
Inherits TypeInfoPublic MustInherit Class EnumBuilder
Inherits TypeInfoPublic NotInheritable Class EnumBuilder
Inherits Type
Implements _EnumBuilderPublic NotInheritable Class EnumBuilder
Inherits TypeInfo
Implements _EnumBuilder- 继承
- 继承
- 继承
- 属性
- 实现
示例
下面的代码示例演示如何使用 EnumBuilder在动态程序集中构造枚举。 该示例定义一个名为 Elevation的枚举,其基础类型 Int32为 ,并创建两个元素: Low、值为 0 和 High,值为 1。 创建类型后,将保存程序集,名称 TempAssembly.dll为 。 可以使用 Ildasm.exe (IL 反汇编程序)  来检查此程序集的内容。
注意
在 .NET Framework 2.0 版之前,此代码示例未生成正确的枚举。
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
void main()
{
    // Get the current application domain for the current thread.
    AppDomain^ currentDomain = AppDomain::CurrentDomain;
      
    // Create a dynamic assembly in the current application domain, 
    // and allow it to be executed and saved to disk.
    AssemblyName^ aName = gcnew AssemblyName("TempAssembly");
    AssemblyBuilder^ ab = currentDomain->DefineDynamicAssembly( 
            aName, AssemblyBuilderAccess::RunAndSave);
      
    // Define a dynamic module in "TempAssembly" assembly. For a single-
    // module assembly, the module has the same name as the assembly.
    ModuleBuilder^ mb = 
            ab->DefineDynamicModule(aName->Name, aName->Name + ".dll");
      
    // Define a public enumeration with the name "Elevation" and an 
    // underlying type of Int32.
    EnumBuilder^ eb = 
            mb->DefineEnum("Elevation", TypeAttributes::Public, int::typeid);
      
    // Define two members, "High" and "Low".
    eb->DefineLiteral("Low", (Object^) 0);
    eb->DefineLiteral("High", 1);
    // Create the type and save the assembly.
    Type^ finished = eb->CreateType();
    ab->Save(aName->Name + ".dll");
    for each (Object^ o in Enum::GetValues(finished))
    {
        Console::WriteLine("{0}.{1} = {2}", finished, o, (int)o);
    }
}
/* This code example produces the following output:
Elevation.Low = 0
Elevation.High = 1
 */
using System;
using System.Reflection;
using System.Reflection.Emit;
class Example
{
    public static void Main()
    {
        // Get the current application domain for the current thread.
        AppDomain currentDomain = AppDomain.CurrentDomain;
        // Create a dynamic assembly in the current application domain,
        // and allow it to be executed and saved to disk.
        AssemblyName aName = new AssemblyName("TempAssembly");
        AssemblyBuilder ab = currentDomain.DefineDynamicAssembly(
            aName, AssemblyBuilderAccess.RunAndSave);
        // Define a dynamic module in "TempAssembly" assembly. For a single-
        // module assembly, the module has the same name as the assembly.
        ModuleBuilder mb = ab.DefineDynamicModule(aName.Name, aName.Name + ".dll");
        // Define a public enumeration with the name "Elevation" and an
        // underlying type of Integer.
        EnumBuilder eb = mb.DefineEnum("Elevation", TypeAttributes.Public, typeof(int));
        // Define two members, "High" and "Low".
        eb.DefineLiteral("Low", 0);
        eb.DefineLiteral("High", 1);
        // Create the type and save the assembly.
        Type finished = eb.CreateType();
        ab.Save(aName.Name + ".dll");
        foreach( object o in Enum.GetValues(finished) )
        {
            Console.WriteLine("{0}.{1} = {2}", finished, o, ((int) o));
        }
    }
}
/* This code example produces the following output:
Elevation.Low = 0
Elevation.High = 1
 */
Imports System.Reflection
Imports System.Reflection.Emit
Module Example
   
    Sub Main()
      
        ' Get the current application domain for the current thread.
        Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      
        ' Create a dynamic assembly in the current application domain, 
        ' and allow it to be executed and saved to disk.
        Dim aName As AssemblyName = New AssemblyName("TempAssembly")
        Dim ab As AssemblyBuilder = currentDomain.DefineDynamicAssembly( _ 
            aName, AssemblyBuilderAccess.RunAndSave)
      
        ' Define a dynamic module in "TempAssembly" assembly. For a single-
        ' module assembly, the module has the same name as the assembly.
        Dim mb As ModuleBuilder = _
            ab.DefineDynamicModule(aName.Name, aName.Name & ".dll")
      
        ' Define a public enumeration with the name "Elevation" and an 
        ' underlying type of Integer.
        Dim eb As EnumBuilder = _
            mb.DefineEnum("Elevation", TypeAttributes.Public, GetType(Integer))
      
        ' Define two members, "High" and "Low".
        eb.DefineLiteral("Low", 0)
        eb.DefineLiteral("High", 1)
        ' Create the type and save the assembly.
        Dim finished As Type = eb.CreateType()
        ab.Save(aName.Name & ".dll")
        For Each o As Object In [Enum].GetValues(finished)
            Console.WriteLine("{0}.{1} = {2}", finished, o, CInt(o))
        Next
   End Sub
End Module
' This code example produces the following output:
'
'Elevation.Low = 0
'Elevation.High = 1
注解
注意
在.NET Framework版本 1.0 和 1.1 中,有必要使用 TypeBuilder 定义枚举,因为 EnumBuilder 会发出元素的类型Int32而不是枚举类型的枚举。 在 .NET Framework版本 2.0 中, EnumBuilder 发出其元素具有正确类型的枚举。
构造函数
| EnumBuilder() | 初始化 EnumBuilder 类的新实例。 | 
属性
| Assembly | 检索包含此枚举定义的动态程序集。 | 
| AssemblyQualifiedName | 返回由父程序集的显示名称限定的此枚举的完整路径。 | 
| Attributes | 获取与 Type 关联的属性。 | 
| Attributes | 获取与 Type 关联的属性。(继承自 Type) | 
| Attributes | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| BaseType | |
| ContainsGenericParameters | 描述并表示一个枚举类型。 | 
| ContainsGenericParameters | 获取一个值,该值指示当前 Type 对象是否具有尚未被特定类型替代的类型参数。(继承自 Type) | 
| ContainsGenericParameters | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| CustomAttributes | 获取包含此成员自定义属性的集合。(继承自 MemberInfo) | 
| DeclaredConstructors | 获取由当前类型声明的构造函数的集合。(继承自 TypeInfo) | 
| DeclaredEvents | 获取由当前类型定义的事件的集合。(继承自 TypeInfo) | 
| DeclaredFields | 获取由当前类型定义的字段的集合。(继承自 TypeInfo) | 
| DeclaredMembers | 获取由当前类型定义的成员的集合。(继承自 TypeInfo) | 
| DeclaredMethods | 获取由当前类型定义的方法的集合。(继承自 TypeInfo) | 
| DeclaredNestedTypes | 获取由当前类型定义的嵌套类型的集合。(继承自 TypeInfo) | 
| DeclaredProperties | 获取由当前类型定义的属性的集合。(继承自 TypeInfo) | 
| DeclaringMethod | 描述并表示一个枚举类型。 | 
| DeclaringMethod | 获取一个表示声明方法的 MethodBase(如果当前 Type 表示泛型方法的一个类型参数)。(继承自 Type) | 
| DeclaringMethod | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| DeclaringType | 返回声明此 EnumBuilder 的类型。 | 
| FullName | 返回此枚举的完整路径。 | 
| GenericParameterAttributes | 描述并表示一个枚举类型。 | 
| GenericParameterAttributes | 获取描述当前泛型类型参数的协变和特殊约束的 GenericParameterAttributes 标志。(继承自 Type) | 
| GenericParameterAttributes | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| GenericParameterPosition | 描述并表示一个枚举类型。 | 
| GenericParameterPosition | 当 Type 对象表示泛型类型或泛型方法的类型参数时,获取类型参数在声明它的泛型类型或方法的类型参数列表中的位置。(继承自 Type) | 
| GenericParameterPosition | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| GenericTypeArguments | 描述并表示一个枚举类型。 | 
| GenericTypeArguments | 获取此类型泛型类型参数的数组。(继承自 Type) | 
| GenericTypeArguments | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| GenericTypeParameters | 获取当前实例泛型类型参数的数组。(继承自 TypeInfo) | 
| GUID | 返回此枚举的 GUID。 | 
| HasElementType | 获取一个值,通过该值指示当前 Type 是包含还是引用另一类型,即当前 Type 是数组、指针还是通过引用传递。(继承自 Type) | 
| HasElementType | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| ImplementedInterfaces | 获取当前类型实现的接口的集合。(继承自 TypeInfo) | 
| IsAbstract | 获取一个值,通过该值指示 Type 是否为抽象的并且必须被重写。(继承自 Type) | 
| IsAbstract | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsAnsiClass | 获取一个值,该值指示是否为  | 
| IsAnsiClass | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsArray | 获取一个值,该值指示类型是否为数组。(继承自 Type) | 
| IsArray | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsAutoClass | 获取一个值,该值指示是否为  | 
| IsAutoClass | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsAutoLayout | 获取指示当前类型的字段是否由公共语言运行时自动放置的值。(继承自 Type) | 
| IsAutoLayout | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsByRef | 获取一个值,该值指示 Type 是否由引用传递。(继承自 Type) | 
| IsByRef | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsByRefLike | 获取一个值,该值指示类型是否是与 byref 类似的结构。 | 
| IsByRefLike | 获取一个值,该值指示类型是否是与 byref 类似的结构。(继承自 Type) | 
| IsClass | 获取一个值,通过该值指示 Type 是否是一个类或委托;即,不是值类型或接口。(继承自 Type) | 
| IsClass | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsCollectible | 获取一个值,该值指示此 MemberInfo 对象是否是包含在可回收的 AssemblyLoadContext 中的程序集的一部分。(继承自 MemberInfo) | 
| IsCOMObject | 获取一个值,通过该值指示 Type 是否为 COM 对象。(继承自 Type) | 
| IsCOMObject | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsConstructedGenericType | 获取指示此对象是否表示构造的泛型类型的值。 | 
| IsConstructedGenericType | 获取指示此对象是否表示构造的泛型类型的值。 你可以创建构造型泛型类型的实例。(继承自 Type) | 
| IsContextful | 获取一个值,通过该值指示 Type 在上下文中是否可以被承载。(继承自 Type) | 
| IsEnum | 描述并表示一个枚举类型。 | 
| IsEnum | 获取一个值,该值指示当前的 Type 是否表示枚举。(继承自 Type) | 
| IsEnum | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsExplicitLayout | 获取指示当前类型的字段是否放置在显式指定的偏移量处的值。(继承自 Type) | 
| IsExplicitLayout | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsFunctionPointer | 获取一个值,该值指示当前 Type 是否为函数指针。(继承自 Type) | 
| IsGenericMethodParameter | 获取一个值,该值指示当前 Type 是否表示泛型方法定义中的类型参数。(继承自 Type) | 
| IsGenericParameter | 描述并表示一个枚举类型。 | 
| IsGenericParameter | 获取一个值,该值指示当前 Type 是否表示泛型类型或方法的定义中的类型参数。(继承自 Type) | 
| IsGenericParameter | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsGenericType | 描述并表示一个枚举类型。 | 
| IsGenericType | 获取一个值,该值指示当前类型是否是泛型类型。(继承自 Type) | 
| IsGenericType | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsGenericTypeDefinition | 描述并表示一个枚举类型。 | 
| IsGenericTypeDefinition | 获取一个值,该值指示当前 Type 是否表示可以用来构造其他泛型类型的泛型类型定义。(继承自 Type) | 
| IsGenericTypeDefinition | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsGenericTypeParameter | 获取一个值,该值指示当前 Type 是否表示泛型类型定义中的类型参数。(继承自 Type) | 
| IsImport | 获取一个值,该值指示 Type 是否应用了 ComImportAttribute 属性,如果应用了该属性,则表示它是从 COM 类型库导入的。(继承自 Type) | 
| IsImport | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsInterface | 获取一个值,通过该值指示 Type 是否是一个接口;即,不是类或值类型。(继承自 Type) | 
| IsInterface | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsLayoutSequential | 获取指示当前类型的字段是否按顺序(定义顺序或发送到元数据的顺序)放置的值。(继承自 Type) | 
| IsLayoutSequential | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsMarshalByRef | 获取一个值,该值指示 Type 是否按引用进行封送。(继承自 Type) | 
| IsMarshalByRef | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNested | 获取一个指示当前 Type 对象是否表示其定义嵌套在另一个类型的定义之内的类型的值。(继承自 Type) | 
| IsNested | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedAssembly | 获取一个值,通过该值指示 Type 是否是嵌套的并且只能在它自己的程序集内可见。(继承自 Type) | 
| IsNestedAssembly | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedFamANDAssem | 获取一个值,通过该值指示 Type 是否是嵌套的并且只对同时属于自己家族和自己程序集的类可见。(继承自 Type) | 
| IsNestedFamANDAssem | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedFamily | 获取一个值,通过该值指示 Type 是否是嵌套的并且只能在它自己的家族内可见。(继承自 Type) | 
| IsNestedFamily | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedFamORAssem | 获取一个值,通过该值指示 Type 是否是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见。(继承自 Type) | 
| IsNestedFamORAssem | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedPrivate | 获取一个值,通过该值指示 Type 是否是嵌套的并声明为私有。(继承自 Type) | 
| IsNestedPrivate | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNestedPublic | 获取一个值,通过该值指示类是否是嵌套的并且声明为公共的。(继承自 Type) | 
| IsNestedPublic | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsNotPublic | 获取一个值,该值指示 Type 是否声明为公共类型。(继承自 Type) | 
| IsNotPublic | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsPointer | 获取一个值,通过该值指示 Type 是否为指针。(继承自 Type) | 
| IsPointer | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsPrimitive | 获取一个值,通过该值指示 Type 是否为基元类型之一。(继承自 Type) | 
| IsPrimitive | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsPublic | 获取一个值,该值指示 Type 是否声明为公共类型。(继承自 Type) | 
| IsPublic | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsSealed | 获取一个值,该值指示 Type 是否声明为密封的。(继承自 Type) | 
| IsSealed | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsSecurityCritical | 获取一个值,该值指示当前的类型在当前信任级别上是安全关键的还是安全可靠关键的,并因此可以执行关键操作。(继承自 Type) | 
| IsSecuritySafeCritical | 获取一个值,该值指示当前类型在当前信任级别上是否是安全可靠关键的;即它是否可以执行关键操作并可以由透明代码访问。(继承自 Type) | 
| IsSecurityTransparent | 获取一个值,该值指示当前类型在当前信任级别上是否是透明的而无法执行关键操作。(继承自 Type) | 
| IsSerializable | 描述并表示一个枚举类型。 | 
| IsSerializable | 
		已过时.
	 获取一个值, Type 该值指示 是否可序列化二进制。(继承自 Type) | 
| IsSerializable | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsSignatureType | 获取一个值,该值指示类型是否是签名类型。(继承自 Type) | 
| IsSpecialName | 获取一个值,该值指示该类型是否具有需要特殊处理的名称。(继承自 Type) | 
| IsSpecialName | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsSZArray | 获取一个值,该值指示类型是否是仅可表示下限为零的一维数组的数组类型。 | 
| IsSZArray | 获取一个值,该值指示类型是否是仅可表示下限为零的一维数组的数组类型。(继承自 Type) | 
| IsTypeDefinition | 获取一个值,该值指示类型是否是类型定义。 | 
| IsTypeDefinition | 获取一个值,该值指示类型是否是类型定义。(继承自 Type) | 
| IsUnicodeClass | 获取一个值,该值指示是否为  | 
| IsUnicodeClass | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsUnmanagedFunctionPointer | 获取一个值,该值指示当前 Type 是否为非托管函数指针。(继承自 Type) | 
| IsValueType | 获取一个值,通过该值指示 Type 是否为值类型。(继承自 Type) | 
| IsValueType | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| IsVariableBoundArray | 描述并表示一个枚举类型。 | 
| IsVariableBoundArray | 获取一个值,该值指示类型是否是可表示多维数组或具有任意下限的数组的数组类型。(继承自 Type) | 
| IsVisible | 获取一个指示 Type 是否可由程序集之外的代码访问的值。(继承自 Type) | 
| IsVisible | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| MemberType | 获取一个指示此成员是类型还是嵌套类型的 MemberTypes 值。(继承自 Type) | 
| MemberType | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| MetadataToken | 获取一个值,该值标识元数据元素。(继承自 MemberInfo) | 
| Module | 检索包含此 EnumBuilder 定义的动态模块。 | 
| Name | 返回此枚举的名称。 | 
| Namespace | 返回此枚举的命名空间。 | 
| ReflectedType | 返回用于获取此 EnumBuilder 的类型。 | 
| ReflectedType | 获取用于获取  | 
| StructLayoutAttribute | 获取一个描述当前类型的布局的 StructLayoutAttribute。(继承自 Type) | 
| StructLayoutAttribute | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| TypeHandle | 检索此枚举的内部句柄。 | 
| TypeInitializer | 获取该类型的初始值设定项。(继承自 Type) | 
| TypeInitializer | 描述并表示一个枚举类型。(继承自 TypeInfo) | 
| TypeToken | 返回此枚举的内部元数据类型标记。 | 
| UnderlyingField | 返回此枚举的基础字段。 | 
| UnderlyingFieldCore | 在派生类中重写时,获取此枚举的基础字段。 | 
| UnderlyingSystemType | 返回此枚举的基础系统类型。 | 
| UnderlyingSystemType | 描述并表示一个枚举类型。(继承自 TypeInfo) |