Name

TypeBuilder

Synopsis

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 field int UnspecifiedTypeSize;                   // =0
                  // Public Instance Properties
   public override field Assembly Assembly{get; }                // overrides Type
   public override field string AssemblyQualifiedName{get; }     // overrides Type
   public override field Type BaseType{get; }                    // overrides Type
   public override field Type DeclaringType{get; ...

Get C# in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.