[ Team LiB ] Previous Section Next Section

TypeBuilder

System.Reflection.Emit (mscorlib.dll)sealed class

This class represents a dynamically created type in a dynamic module (ModuleBuilder object). Generally, a type is either a class or an interface. To create a TypeBuilder, use the overloaded ModuleBuilder.DefineType( ) method. Depending on which overload you use, you can specify different information including the type name, superclass, and implemented interfaces. You can also use the System.Reflection.TypeAttributes enumeration to specify other options, such as making a class sealed, abstract, or public, or defining it as an interface. Once the type is created, you can add members such as constructors, events, fields, properties, methods, and other nested types, using the corresponding Define method.

Before using a type you created, you must use the CreateType( ) method to get a Type object. After that, you can instantiate the Type with the System.Activator.CreateInstance( ) method, and invoke members of the type with the System.Type.InvokeMember( ) method. After creating a type, you can no longer use TypeBuilder methods that would change the type, such as a Define method.

public sealed class TypeBuilder : Type {
// Public Static Fields
   public const int UnspecifiedTypeSize; 
// =0
// Public Instance Properties
   public override Assembly Assembly{get; }           
// overrides Type
   public override string AssemblyQualifiedName{get; }
// overrides Type
   public override Type BaseType{get; }  
// overrides Type
   public override Type DeclaringType{get; }          
// overrides Type
   public override string FullName{get; }
// overrides Type
   public override Guid GUID{get; }      
// overrides Type
   public override Module Module{get; }  
// overrides Type
   public override string Name{get; }    
// overrides System.Reflection.MemberInfo
   public override string Namespace{get; }            
// overrides Type
   public PackingSize PackingSize{get; }
   public override Type ReflectedType{get; }          
// overrides Type
   public int Size{get; }
   public override RuntimeTypeHandle TypeHandle{get; }
// overrides Type
   public TypeToken TypeToken{get; }
   public override Type UnderlyingSystemType{get; }   
// overrides Type
// Public Instance Methods
   public void AddDeclarativeSecurity(System.Security.Permissions.SecurityAction action,
       System.Security.PermissionSet pset);
   public void AddInterfaceImplementation(Type interfaceType);
   public Type CreateType( );
   public ConstructorBuilder DefineConstructor(System.Reflection.MethodAttributes attributes,
       System.Reflection.CallingConventions callingConvention,Type[ ] parameterTypes);
   public ConstructorBuilder DefineDefaultConstructor(System.Reflection.MethodAttributes attributes);
   public EventBuilder DefineEvent(string name, System.Reflection.EventAttributes attributes, 
        Type eventtype);
   public FieldBuilder DefineField(string fieldName, Type type, 
        System.Reflection.FieldAttributes attributes);
   public FieldBuilder DefineInitializedData(string name, byte[ ] data, 
        System.Reflection.FieldAttributes attributes);
   public MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, 
       System.Reflection.CallingConventions callingConvention,Type returnType, Type[ ] parameterTypes);
   public MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes,
       Type returnType, Type[ ] parameterTypes);
   public void DefineMethodOverride(System.Reflection.MethodInfo methodInfoBody,
       System.Reflection.MethodInfo methodInfoDeclaration);
   public TypeBuilder DefineNestedType(string name);
   public TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr);
   public TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, 
        Type parent);
   public TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, 
        Type parent, int typeSize);
   public TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, 
       Type parent,PackingSize packSize);
   public TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, 
        Type parent, Type[ ] interfaces);
   public MethodBuilder DefinePInvokeMethod(string name, string dllName, 
       System.Reflection.MethodAttributes attributes, 
       System.Reflection.CallingConventions callingConvention,
       Type returnType, Type[ ] parameterTypes, 
       System.Runtime.InteropServices.CallingConvention nativeCallConv, 
       System.Runtime.InteropServices.CharSet nativeCharSet);
   public MethodBuilder DefinePInvokeMethod(string name, string dllName, string entryName, 
       System.Reflection.MethodAttributes attributes, 
       System.Reflection.CallingConventions callingConvention,
       Type returnType, Type[ ] parameterTypes, 
       System.Runtime.InteropServices.CallingConvention nativeCallConv, 
       System.Runtime.InteropServices.CharSet nativeCharSet);
   public PropertyBuilder DefineProperty(string name, 
       System.Reflection.PropertyAttributes attributes,
       Type returnType, Type[ ] parameterTypes);
   public ConstructorBuilder DefineTypeInitializer( );
   public FieldBuilder DefineUninitializedData(string name, int size, 
        System.Reflection.FieldAttributes attributes);
   public override ConstructorInfo[ ] GetConstructors(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override object[ ] GetCustomAttributes( bool inherit)
// overrides System.Reflection.MemberInfo
   public override object[ ] GetCustomAttributes(Type attributeType,bool inherit)
// overrides System.Reflection.MemberInfo
   public override Type GetElementType( );
// overrides Type
   public override EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override EventInfo[ ] GetEvents( );           
// overrides Type
   public override EventInfo[ ] GetEvents(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override FieldInfo[ ] GetFields(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override Type GetInterface(string name, bool ignoreCase)
// overrides Type
   public override InterfaceMapping GetInterfaceMap(Type interfaceType)
// overrides Type
   public override Type[ ] GetInterfaces( );            
// overrides Type
   public override MemberInfo[ ] GetMember(string name, System.Reflection.MemberTypes type,
       System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override MemberInfo[ ] GetMembers(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override MethodInfo[ ] GetMethods(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override Type[ ] GetNestedTypes(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override PropertyInfo[ ] GetProperties(System.Reflection.BindingFlags bindingAttr)
// overrides Type
   public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr,
       System.Reflection.Binder binder, object target, object[ ] args, 
      System.Reflection.ParameterModifier[ ] modifiers, 
      System.Globalization.CultureInfo culture, string[ ] namedParameters)
// overrides Type
   public override bool IsAssignableFrom(Type c);    
// overrides Type
   public override bool IsDefined(Type attributeType, bool inherit)
// overrides System.Reflection.MemberInfo
   public override bool IsSubclassOf(Type c);        
// overrides Type
   public void SetCustomAttribute(System.Reflection.ConstructorInfo con, 
        byte[ ] binaryAttribute);
   public void SetCustomAttribute(CustomAttributeBuilder customBuilder);
   public void SetParent(Type parent);
   public override string ToString( );    
// overrides Type
// Protected Instance Methods
   protected override TypeAttributes GetAttributeFlagsImpl( );
// overrides Type
   protected override ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr,
       System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention,
       Type[ ] types,
       System.Reflection.ParameterModifier[ ] modifiers)
// overrides Type
   protected override MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr,
       System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, 
       Type[ ] types,
       System.Reflection.ParameterModifier[ ] modifiers)
// overrides Type
   protected override PropertyInfo GetPropertyImpl(string name,  
       System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, 
       Type returnType, Type[ ] types, 
       System.Reflection.ParameterModifier[ ] modifiers)
// overrides Type
   protected override bool HasElementTypeImpl( );      
// overrides Type
   protected override bool IsArrayImpl( );
// overrides Type
   protected override bool IsByRefImpl( );
// overrides Type
   protected override bool IsCOMObjectImpl( );         
// overrides Type
   protected override bool IsPointerImpl( );           
// overrides Type
   protected override bool IsPrimitiveImpl( );         
// overrides Type
}

Hierarchy

System.Object System.Reflection.MemberInfo(System.Reflection.ICustomAttributeProvider) System.Type(System.Reflection.IReflect) TypeBuilder

Returned By

ModuleBuilder.DefineType( )

    [ Team LiB ] Previous Section Next Section