TypeBuilder Classe

Définition

Définit et crée des instances de classes pendant l’exécution.

public ref class TypeBuilder sealed : Type
public ref class TypeBuilder sealed : System::Reflection::TypeInfo
public ref class TypeBuilder abstract : System::Reflection::TypeInfo
public ref class TypeBuilder sealed : Type, System::Runtime::InteropServices::_TypeBuilder
public ref class TypeBuilder sealed : System::Reflection::TypeInfo, System::Runtime::InteropServices::_TypeBuilder
public sealed class TypeBuilder : Type
public sealed class TypeBuilder : System.Reflection.TypeInfo
public abstract class TypeBuilder : System.Reflection.TypeInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : System.Reflection.TypeInfo, System.Runtime.InteropServices._TypeBuilder
type TypeBuilder = class
    inherit Type
type TypeBuilder = class
    inherit TypeInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type TypeBuilder = class
    inherit Type
    interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
    inherit Type
    interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
    inherit TypeInfo
    interface _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits Type
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Public MustInherit Class TypeBuilder
Inherits TypeInfo
Public NotInheritable Class TypeBuilder
Inherits Type
Implements _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Implements _TypeBuilder
Héritage
TypeBuilder
Héritage
TypeBuilder
Héritage
Attributs
Implémente

Exemples

L’exemple de code suivant montre comment définir et utiliser un assembly dynamique. L’exemple d’assembly contient un type, MyDynamicType, qui a un champ privé, une propriété qui obtient et définit le champ privé, des constructeurs qui initialisent le champ privé et une méthode qui multiplie un nombre fourni par l’utilisateur par la valeur du champ privé et retourne le résultat.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;

void main()
{
    // This code creates an assembly that contains one type,
    // named "MyDynamicType", that has a private field, a property
    // that gets and sets the private field, constructors that
    // initialize the private field, and a method that multiplies
    // a user-supplied number by the private field value and returns
    // the result. In Visual C++ the type might look like this:
    /*
      public ref class MyDynamicType
      {
      private:
          int m_number;

      public:
          MyDynamicType() : m_number(42) {};
          MyDynamicType(int initNumber) : m_number(initNumber) {};
      
          property int Number
          {
              int get() { return m_number; }
              void set(int value) { m_number = value; }
          }

          int MyMethod(int multiplier)
          {
              return m_number * multiplier;
          }
      };
    */
      
    AssemblyName^ aName = gcnew AssemblyName("DynamicAssemblyExample");
    AssemblyBuilder^ ab = 
        AssemblyBuilder::DefineDynamicAssembly(
            aName, 
            AssemblyBuilderAccess::Run);

    // The module name is usually the same as the assembly name
    ModuleBuilder^ mb = 
        ab->DefineDynamicModule(aName->Name);
      
    TypeBuilder^ tb = mb->DefineType(
        "MyDynamicType", 
         TypeAttributes::Public);

    // Add a private field of type int (Int32).
    FieldBuilder^ fbNumber = tb->DefineField(
        "m_number", 
        int::typeid, 
        FieldAttributes::Private);

    // Define a constructor that takes an integer argument and 
    // stores it in the private field. 
    array<Type^>^ parameterTypes = { int::typeid };
    ConstructorBuilder^ ctor1 = tb->DefineConstructor(
        MethodAttributes::Public, 
        CallingConventions::Standard, 
        parameterTypes);

    ILGenerator^ ctor1IL = ctor1->GetILGenerator();
    // For a constructor, argument zero is a reference to the new
    // instance. Push it on the stack before calling the base
    // class constructor. Specify the default constructor of the 
    // base class (System::Object) by passing an empty array of 
    // types (Type::EmptyTypes) to GetConstructor.
    ctor1IL->Emit(OpCodes::Ldarg_0);
    ctor1IL->Emit(OpCodes::Call, 
        Object::typeid->GetConstructor(Type::EmptyTypes));
    // Push the instance on the stack before pushing the argument
    // that is to be assigned to the private field m_number.
    ctor1IL->Emit(OpCodes::Ldarg_0);
    ctor1IL->Emit(OpCodes::Ldarg_1);
    ctor1IL->Emit(OpCodes::Stfld, fbNumber);
    ctor1IL->Emit(OpCodes::Ret);

    // Define a default constructor that supplies a default value
    // for the private field. For parameter types, pass the empty
    // array of types or pass nullptr.
    ConstructorBuilder^ ctor0 = tb->DefineConstructor(
        MethodAttributes::Public, 
        CallingConventions::Standard, 
        Type::EmptyTypes);

    ILGenerator^ ctor0IL = ctor0->GetILGenerator();
    ctor0IL->Emit(OpCodes::Ldarg_0);
    ctor0IL->Emit(OpCodes::Call, 
        Object::typeid->GetConstructor(Type::EmptyTypes));
    // For a constructor, argument zero is a reference to the new
    // instance. Push it on the stack before pushing the default
    // value on the stack.
    ctor0IL->Emit(OpCodes::Ldarg_0);
    ctor0IL->Emit(OpCodes::Ldc_I4_S, 42);
    ctor0IL->Emit(OpCodes::Stfld, fbNumber);
    ctor0IL->Emit(OpCodes::Ret);

    // Define a property named Number that gets and sets the private 
    // field.
    //
    // The last argument of DefineProperty is nullptr, because the
    // property has no parameters. (If you don't specify nullptr, you must
    // specify an array of Type objects. For a parameterless property,
    // use the built-in array with no elements: Type::EmptyTypes)
    PropertyBuilder^ pbNumber = tb->DefineProperty(
        "Number", 
        PropertyAttributes::HasDefault, 
        int::typeid, 
        nullptr);
      
    // The property "set" and property "get" methods require a special
    // set of attributes.
    MethodAttributes getSetAttr = MethodAttributes::Public | 
        MethodAttributes::SpecialName | MethodAttributes::HideBySig;

    // Define the "get" accessor method for Number. The method returns
    // an integer and has no arguments. (Note that nullptr could be 
    // used instead of Types::EmptyTypes)
    MethodBuilder^ mbNumberGetAccessor = tb->DefineMethod(
        "get_Number", 
        getSetAttr, 
        int::typeid, 
        Type::EmptyTypes);
      
    ILGenerator^ numberGetIL = mbNumberGetAccessor->GetILGenerator();
    // For an instance property, argument zero is the instance. Load the 
    // instance, then load the private field and return, leaving the
    // field value on the stack.
    numberGetIL->Emit(OpCodes::Ldarg_0);
    numberGetIL->Emit(OpCodes::Ldfld, fbNumber);
    numberGetIL->Emit(OpCodes::Ret);
    
    // Define the "set" accessor method for Number, which has no return
    // type and takes one argument of type int (Int32).
    MethodBuilder^ mbNumberSetAccessor = tb->DefineMethod(
        "set_Number", 
        getSetAttr, 
        nullptr, 
        gcnew array<Type^> { int::typeid });
      
    ILGenerator^ numberSetIL = mbNumberSetAccessor->GetILGenerator();
    // Load the instance and then the numeric argument, then store the
    // argument in the field.
    numberSetIL->Emit(OpCodes::Ldarg_0);
    numberSetIL->Emit(OpCodes::Ldarg_1);
    numberSetIL->Emit(OpCodes::Stfld, fbNumber);
    numberSetIL->Emit(OpCodes::Ret);
      
    // Last, map the "get" and "set" accessor methods to the 
    // PropertyBuilder. The property is now complete. 
    pbNumber->SetGetMethod(mbNumberGetAccessor);
    pbNumber->SetSetMethod(mbNumberSetAccessor);

    // Define a method that accepts an integer argument and returns
    // the product of that integer and the private field m_number. This
    // time, the array of parameter types is created on the fly.
    MethodBuilder^ meth = tb->DefineMethod(
        "MyMethod", 
        MethodAttributes::Public, 
        int::typeid, 
        gcnew array<Type^> { int::typeid });

    ILGenerator^ methIL = meth->GetILGenerator();
    // To retrieve the private instance field, load the instance it
    // belongs to (argument zero). After loading the field, load the 
    // argument one and then multiply. Return from the method with 
    // the return value (the product of the two numbers) on the 
    // execution stack.
    methIL->Emit(OpCodes::Ldarg_0);
    methIL->Emit(OpCodes::Ldfld, fbNumber);
    methIL->Emit(OpCodes::Ldarg_1);
    methIL->Emit(OpCodes::Mul);
    methIL->Emit(OpCodes::Ret);

    // Finish the type->
    Type^ t = tb->CreateType();

    // Because AssemblyBuilderAccess includes Run, the code can be
    // executed immediately. Start by getting reflection objects for
    // the method and the property.
    MethodInfo^ mi = t->GetMethod("MyMethod");
    PropertyInfo^ pi = t->GetProperty("Number");
  
    // Create an instance of MyDynamicType using the default 
    // constructor. 
    Object^ o1 = Activator::CreateInstance(t);

    // Display the value of the property, then change it to 127 and 
    // display it again. Use nullptr to indicate that the property
    // has no index.
    Console::WriteLine("o1->Number: {0}", pi->GetValue(o1, nullptr));
    pi->SetValue(o1, 127, nullptr);
    Console::WriteLine("o1->Number: {0}", pi->GetValue(o1, nullptr));

    // Call MyMethod, passing 22, and display the return value, 22
    // times 127. Arguments must be passed as an array, even when
    // there is only one.
    array<Object^>^ arguments = { 22 };
    Console::WriteLine("o1->MyMethod(22): {0}", 
        mi->Invoke(o1, arguments));

    // Create an instance of MyDynamicType using the constructor
    // that specifies m_Number. The constructor is identified by
    // matching the types in the argument array. In this case, 
    // the argument array is created on the fly. Display the 
    // property value.
    Object^ o2 = Activator::CreateInstance(t, 
        gcnew array<Object^> { 5280 });
    Console::WriteLine("o2->Number: {0}", pi->GetValue(o2, nullptr));
};

/* This code produces the following output:

o1->Number: 42
o1->Number: 127
o1->MyMethod(22): 2794
o2->Number: 5280
 */
using System;
using System.Reflection;
using System.Reflection.Emit;

class DemoAssemblyBuilder
{
    public static void Main()
    {
        // This code creates an assembly that contains one type,
        // named "MyDynamicType", that has a private field, a property
        // that gets and sets the private field, constructors that
        // initialize the private field, and a method that multiplies
        // a user-supplied number by the private field value and returns
        // the result. In C# the type might look like this:
        /*
        public class MyDynamicType
        {
            private int m_number;

            public MyDynamicType() : this(42) {}
            public MyDynamicType(int initNumber)
            {
                m_number = initNumber;
            }

            public int Number
            {
                get { return m_number; }
                set { m_number = value; }
            }

            public int MyMethod(int multiplier)
            {
                return m_number * multiplier;
            }
        }
        */

        var aName = new AssemblyName("DynamicAssemblyExample");
        AssemblyBuilder ab =
            AssemblyBuilder.DefineDynamicAssembly(
                aName,
                AssemblyBuilderAccess.Run);

        // The module name is usually the same as the assembly name.
        ModuleBuilder mb = ab.DefineDynamicModule(aName.Name ?? "DynamicAssemblyExample");

        TypeBuilder tb = mb.DefineType(
            "MyDynamicType",
             TypeAttributes.Public);

        // Add a private field of type int (Int32).
        FieldBuilder fbNumber = tb.DefineField(
            "m_number",
            typeof(int),
            FieldAttributes.Private);

        // Define a constructor that takes an integer argument and
        // stores it in the private field.
        Type[] parameterTypes = { typeof(int) };
        ConstructorBuilder ctor1 = tb.DefineConstructor(
            MethodAttributes.Public,
            CallingConventions.Standard,
            parameterTypes);

        ILGenerator ctor1IL = ctor1.GetILGenerator();
        // For a constructor, argument zero is a reference to the new
        // instance. Push it on the stack before calling the base
        // class constructor. Specify the default constructor of the
        // base class (System.Object) by passing an empty array of
        // types (Type.EmptyTypes) to GetConstructor.
        ctor1IL.Emit(OpCodes.Ldarg_0);
        ConstructorInfo? ci = typeof(object).GetConstructor(Type.EmptyTypes);
        ctor1IL.Emit(OpCodes.Call, ci!);
        // Push the instance on the stack before pushing the argument
        // that is to be assigned to the private field m_number.
        ctor1IL.Emit(OpCodes.Ldarg_0);
        ctor1IL.Emit(OpCodes.Ldarg_1);
        ctor1IL.Emit(OpCodes.Stfld, fbNumber);
        ctor1IL.Emit(OpCodes.Ret);

        // Define a default constructor that supplies a default value
        // for the private field. For parameter types, pass the empty
        // array of types or pass null.
        ConstructorBuilder ctor0 = tb.DefineConstructor(
            MethodAttributes.Public,
            CallingConventions.Standard,
            Type.EmptyTypes);

        ILGenerator ctor0IL = ctor0.GetILGenerator();
        // For a constructor, argument zero is a reference to the new
        // instance. Push it on the stack before pushing the default
        // value on the stack, then call constructor ctor1.
        ctor0IL.Emit(OpCodes.Ldarg_0);
        ctor0IL.Emit(OpCodes.Ldc_I4_S, 42);
        ctor0IL.Emit(OpCodes.Call, ctor1);
        ctor0IL.Emit(OpCodes.Ret);

        // Define a property named Number that gets and sets the private
        // field.
        //
        // The last argument of DefineProperty is null, because the
        // property has no parameters. (If you don't specify null, you must
        // specify an array of Type objects. For a parameterless property,
        // use the built-in array with no elements: Type.EmptyTypes)
        PropertyBuilder pbNumber = tb.DefineProperty(
            "Number",
            PropertyAttributes.HasDefault,
            typeof(int),
            null);

        // The property "set" and property "get" methods require a special
        // set of attributes.
        MethodAttributes getSetAttr = MethodAttributes.Public |
            MethodAttributes.SpecialName | MethodAttributes.HideBySig;

        // Define the "get" accessor method for Number. The method returns
        // an integer and has no arguments. (Note that null could be
        // used instead of Types.EmptyTypes)
        MethodBuilder mbNumberGetAccessor = tb.DefineMethod(
            "get_Number",
            getSetAttr,
            typeof(int),
            Type.EmptyTypes);

        ILGenerator numberGetIL = mbNumberGetAccessor.GetILGenerator();
        // For an instance property, argument zero is the instance. Load the
        // instance, then load the private field and return, leaving the
        // field value on the stack.
        numberGetIL.Emit(OpCodes.Ldarg_0);
        numberGetIL.Emit(OpCodes.Ldfld, fbNumber);
        numberGetIL.Emit(OpCodes.Ret);

        // Define the "set" accessor method for Number, which has no return
        // type and takes one argument of type int (Int32).
        MethodBuilder mbNumberSetAccessor = tb.DefineMethod(
            "set_Number",
            getSetAttr,
            null,
            new Type[] { typeof(int) });

        ILGenerator numberSetIL = mbNumberSetAccessor.GetILGenerator();
        // Load the instance and then the numeric argument, then store the
        // argument in the field.
        numberSetIL.Emit(OpCodes.Ldarg_0);
        numberSetIL.Emit(OpCodes.Ldarg_1);
        numberSetIL.Emit(OpCodes.Stfld, fbNumber);
        numberSetIL.Emit(OpCodes.Ret);

        // Last, map the "get" and "set" accessor methods to the
        // PropertyBuilder. The property is now complete.
        pbNumber.SetGetMethod(mbNumberGetAccessor);
        pbNumber.SetSetMethod(mbNumberSetAccessor);

        // Define a method that accepts an integer argument and returns
        // the product of that integer and the private field m_number. This
        // time, the array of parameter types is created on the fly.
        MethodBuilder meth = tb.DefineMethod(
            "MyMethod",
            MethodAttributes.Public,
            typeof(int),
            new Type[] { typeof(int) });

        ILGenerator methIL = meth.GetILGenerator();
        // To retrieve the private instance field, load the instance it
        // belongs to (argument zero). After loading the field, load the
        // argument one and then multiply. Return from the method with
        // the return value (the product of the two numbers) on the
        // execution stack.
        methIL.Emit(OpCodes.Ldarg_0);
        methIL.Emit(OpCodes.Ldfld, fbNumber);
        methIL.Emit(OpCodes.Ldarg_1);
        methIL.Emit(OpCodes.Mul);
        methIL.Emit(OpCodes.Ret);

        // Finish the type.
        Type? t = tb.CreateType();

        // Because AssemblyBuilderAccess includes Run, the code can be
        // executed immediately. Start by getting reflection objects for
        // the method and the property.
        MethodInfo? mi = t?.GetMethod("MyMethod");
        PropertyInfo? pi = t?.GetProperty("Number");

        // Create an instance of MyDynamicType using the default
        // constructor.
        object? o1 = null;
        if (t is not null)
            o1 = Activator.CreateInstance(t);

        // Display the value of the property, then change it to 127 and
        // display it again. Use null to indicate that the property
        // has no index.
        Console.WriteLine("o1.Number: {0}", pi?.GetValue(o1, null));
        pi?.SetValue(o1, 127, null);
        Console.WriteLine("o1.Number: {0}", pi?.GetValue(o1, null));

        // Call MyMethod, passing 22, and display the return value, 22
        // times 127. Arguments must be passed as an array, even when
        // there is only one.
        object[] arguments = { 22 };
        Console.WriteLine("o1.MyMethod(22): {0}",
            mi?.Invoke(o1, arguments));

        // Create an instance of MyDynamicType using the constructor
        // that specifies m_Number. The constructor is identified by
        // matching the types in the argument array. In this case,
        // the argument array is created on the fly. Display the
        // property value.
        object? o2 = null;
        if (t is not null)
            o2 = Activator.CreateInstance(t, new object[] { 5280 });
        Console.WriteLine("o2.Number: {0}", pi?.GetValue(o2, null));
    }
}

/* This code produces the following output:

o1.Number: 42
o1.Number: 127
o1.MyMethod(22): 2794
o2.Number: 5280
 */
Imports System.Reflection
Imports System.Reflection.Emit

Class DemoAssemblyBuilder

    Public Shared Sub Main()

        ' This code creates an assembly that contains one type,
        ' named "MyDynamicType", that has a private field, a property
        ' that gets and sets the private field, constructors that
        ' initialize the private field, and a method that multiplies
        ' a user-supplied number by the private field value and returns
        ' the result. The code might look like this in Visual Basic:
        '
        'Public Class MyDynamicType
        '    Private m_number As Integer
        '
        '    Public Sub New()
        '        Me.New(42)
        '    End Sub
        '
        '    Public Sub New(ByVal initNumber As Integer)
        '        m_number = initNumber
        '    End Sub
        '
        '    Public Property Number As Integer
        '        Get
        '            Return m_number
        '        End Get
        '        Set
        '            m_Number = Value
        '        End Set
        '    End Property
        '
        '    Public Function MyMethod(ByVal multiplier As Integer) As Integer
        '        Return m_Number * multiplier
        '    End Function
        'End Class
      
        Dim aName As New AssemblyName("DynamicAssemblyExample")
        Dim ab As AssemblyBuilder = _
            AssemblyBuilder.DefineDynamicAssembly( _
                aName, _
                AssemblyBuilderAccess.Run)

        ' The module name is usually the same as the assembly name.
        Dim mb As ModuleBuilder = ab.DefineDynamicModule( _
            aName.Name)
      
        Dim tb As TypeBuilder = _
            mb.DefineType("MyDynamicType", TypeAttributes.Public)

        ' Add a private field of type Integer (Int32).
        Dim fbNumber As FieldBuilder = tb.DefineField( _
            "m_number", _
            GetType(Integer), _
            FieldAttributes.Private)

        ' Define a constructor that takes an integer argument and 
        ' stores it in the private field. 
        Dim parameterTypes() As Type = { GetType(Integer) }
        Dim ctor1 As ConstructorBuilder = _
            tb.DefineConstructor( _
                MethodAttributes.Public, _
                CallingConventions.Standard, _
                parameterTypes)

        Dim ctor1IL As ILGenerator = ctor1.GetILGenerator()
        ' For a constructor, argument zero is a reference to the new
        ' instance. Push it on the stack before calling the base
        ' class constructor. Specify the default constructor of the 
        ' base class (System.Object) by passing an empty array of 
        ' types (Type.EmptyTypes) to GetConstructor.
        ctor1IL.Emit(OpCodes.Ldarg_0)
        ctor1IL.Emit(OpCodes.Call, _
            GetType(Object).GetConstructor(Type.EmptyTypes))
        ' Push the instance on the stack before pushing the argument
        ' that is to be assigned to the private field m_number.
        ctor1IL.Emit(OpCodes.Ldarg_0)
        ctor1IL.Emit(OpCodes.Ldarg_1)
        ctor1IL.Emit(OpCodes.Stfld, fbNumber)
        ctor1IL.Emit(OpCodes.Ret)

        ' Define a default constructor that supplies a default value
        ' for the private field. For parameter types, pass the empty
        ' array of types or pass Nothing.
        Dim ctor0 As ConstructorBuilder = tb.DefineConstructor( _
            MethodAttributes.Public, _
            CallingConventions.Standard, _
            Type.EmptyTypes)

        Dim ctor0IL As ILGenerator = ctor0.GetILGenerator()
        ' For a constructor, argument zero is a reference to the new
        ' instance. Push it on the stack before pushing the default
        ' value on the stack, then call constructor ctor1.
        ctor0IL.Emit(OpCodes.Ldarg_0)
        ctor0IL.Emit(OpCodes.Ldc_I4_S, 42)
        ctor0IL.Emit(OpCodes.Call, ctor1)
        ctor0IL.Emit(OpCodes.Ret)

        ' Define a property named Number that gets and sets the private 
        ' field.
        '
        ' The last argument of DefineProperty is Nothing, because the
        ' property has no parameters. (If you don't specify Nothing, you must
        ' specify an array of Type objects. For a parameterless property,
        ' use the built-in array with no elements: Type.EmptyTypes)
        Dim pbNumber As PropertyBuilder = tb.DefineProperty( _
            "Number", _
            PropertyAttributes.HasDefault, _
            GetType(Integer), _
            Nothing)
      
        ' The property Set and property Get methods require a special
        ' set of attributes.
        Dim getSetAttr As MethodAttributes = _
            MethodAttributes.Public Or MethodAttributes.SpecialName _
                Or MethodAttributes.HideBySig

        ' Define the "get" accessor method for Number. The method returns
        ' an integer and has no arguments. (Note that Nothing could be 
        ' used instead of Types.EmptyTypes)
        Dim mbNumberGetAccessor As MethodBuilder = tb.DefineMethod( _
            "get_Number", _
            getSetAttr, _
            GetType(Integer), _
            Type.EmptyTypes)
      
        Dim numberGetIL As ILGenerator = mbNumberGetAccessor.GetILGenerator()
        ' For an instance property, argument zero is the instance. Load the 
        ' instance, then load the private field and return, leaving the
        ' field value on the stack.
        numberGetIL.Emit(OpCodes.Ldarg_0)
        numberGetIL.Emit(OpCodes.Ldfld, fbNumber)
        numberGetIL.Emit(OpCodes.Ret)
        
        ' Define the "set" accessor method for Number, which has no return
        ' type and takes one argument of type Integer (Int32).
        Dim mbNumberSetAccessor As MethodBuilder = _
            tb.DefineMethod( _
                "set_Number", _
                getSetAttr, _
                Nothing, _
                New Type() { GetType(Integer) })
      
        Dim numberSetIL As ILGenerator = mbNumberSetAccessor.GetILGenerator()
        ' Load the instance and then the numeric argument, then store the
        ' argument in the field.
        numberSetIL.Emit(OpCodes.Ldarg_0)
        numberSetIL.Emit(OpCodes.Ldarg_1)
        numberSetIL.Emit(OpCodes.Stfld, fbNumber)
        numberSetIL.Emit(OpCodes.Ret)
      
        ' Last, map the "get" and "set" accessor methods to the 
        ' PropertyBuilder. The property is now complete. 
        pbNumber.SetGetMethod(mbNumberGetAccessor)
        pbNumber.SetSetMethod(mbNumberSetAccessor)

        ' Define a method that accepts an integer argument and returns
        ' the product of that integer and the private field m_number. This
        ' time, the array of parameter types is created on the fly.
        Dim meth As MethodBuilder = tb.DefineMethod( _
            "MyMethod", _
            MethodAttributes.Public, _
            GetType(Integer), _
            New Type() { GetType(Integer) })

        Dim methIL As ILGenerator = meth.GetILGenerator()
        ' To retrieve the private instance field, load the instance it
        ' belongs to (argument zero). After loading the field, load the 
        ' argument one and then multiply. Return from the method with 
        ' the return value (the product of the two numbers) on the 
        ' execution stack.
        methIL.Emit(OpCodes.Ldarg_0)
        methIL.Emit(OpCodes.Ldfld, fbNumber)
        methIL.Emit(OpCodes.Ldarg_1)
        methIL.Emit(OpCodes.Mul)
        methIL.Emit(OpCodes.Ret)

        ' Finish the type.
        Dim t As Type = tb.CreateType()

        ' Because AssemblyBuilderAccess includes Run, the code can be
        ' executed immediately. Start by getting reflection objects for
        ' the method and the property.
        Dim mi As MethodInfo = t.GetMethod("MyMethod")
        Dim pi As PropertyInfo = t.GetProperty("Number")
  
        ' Create an instance of MyDynamicType using the default 
        ' constructor. 
        Dim o1 As Object = Activator.CreateInstance(t)

        ' Display the value of the property, then change it to 127 and 
        ' display it again. Use Nothing to indicate that the property
        ' has no index.
        Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, Nothing))
        pi.SetValue(o1, 127, Nothing)
        Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, Nothing))

        ' Call MyMethod, passing 22, and display the return value, 22
        ' times 127. Arguments must be passed as an array, even when
        ' there is only one.
        Dim arguments() As Object = { 22 }
        Console.WriteLine("o1.MyMethod(22): {0}", _
            mi.Invoke(o1, arguments))

        ' Create an instance of MyDynamicType using the constructor
        ' that specifies m_Number. The constructor is identified by
        ' matching the types in the argument array. In this case, 
        ' the argument array is created on the fly. Display the 
        ' property value.
        Dim o2 As Object = Activator.CreateInstance(t, _
            New Object() { 5280 })
        Console.WriteLine("o2.Number: {0}", pi.GetValue(o2, Nothing))
      
    End Sub  
End Class

' This code produces the following output:
'
'o1.Number: 42
'o1.Number: 127
'o1.MyMethod(22): 2794
'o2.Number: 5280

L’exemple de code suivant montre comment générer un type dynamiquement à l’aide de TypeBuilder.

using namespace System;
using namespace System::Threading;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
Type^ DynamicDotProductGen()
{
   Type^ ivType = nullptr;
   array<Type^>^temp0 = {int::typeid,int::typeid,int::typeid};
   array<Type^>^ctorParams = temp0;
   AppDomain^ myDomain = Thread::GetDomain();
   AssemblyName^ myAsmName = gcnew AssemblyName;
   myAsmName->Name = "IntVectorAsm";
   AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( myAsmName, AssemblyBuilderAccess::RunAndSave );
   ModuleBuilder^ IntVectorModule = myAsmBuilder->DefineDynamicModule( "IntVectorModule", "Vector.dll" );
   TypeBuilder^ ivTypeBld = IntVectorModule->DefineType( "IntVector", TypeAttributes::Public );
   FieldBuilder^ xField = ivTypeBld->DefineField( "x", int::typeid, FieldAttributes::Private );
   FieldBuilder^ yField = ivTypeBld->DefineField( "y", int::typeid, FieldAttributes::Private );
   FieldBuilder^ zField = ivTypeBld->DefineField( "z", int::typeid, FieldAttributes::Private );
   Type^ objType = Type::GetType( "System.Object" );
   ConstructorInfo^ objCtor = objType->GetConstructor( gcnew array<Type^>(0) );
   ConstructorBuilder^ ivCtor = ivTypeBld->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, ctorParams );
   ILGenerator^ ctorIL = ivCtor->GetILGenerator();
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Call, objCtor );
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_1 );
   ctorIL->Emit( OpCodes::Stfld, xField );
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_2 );
   ctorIL->Emit( OpCodes::Stfld, yField );
   ctorIL->Emit( OpCodes::Ldarg_0 );
   ctorIL->Emit( OpCodes::Ldarg_3 );
   ctorIL->Emit( OpCodes::Stfld, zField );
   ctorIL->Emit( OpCodes::Ret );
   
   // This method will find the dot product of the stored vector
   // with another.
   array<Type^>^temp1 = {ivTypeBld};
   array<Type^>^dpParams = temp1;
   
   // Here, you create a MethodBuilder containing the
   // name, the attributes (public, static, private, and so on),
   // the return type (int, in this case), and a array of Type
   // indicating the type of each parameter. Since the sole parameter
   // is a IntVector, the very class you're creating, you will
   // pass in the TypeBuilder (which is derived from Type) instead of
   // a Type object for IntVector, avoiding an exception.
   // -- This method would be declared in C# as:
   //    public int DotProduct(IntVector aVector)
   MethodBuilder^ dotProductMthd = ivTypeBld->DefineMethod( "DotProduct", MethodAttributes::Public, int::typeid, dpParams );
   
   // A ILGenerator can now be spawned, attached to the MethodBuilder.
   ILGenerator^ mthdIL = dotProductMthd->GetILGenerator();
   
   // Here's the body of our function, in MSIL form. We're going to find the
   // "dot product" of the current vector instance with the passed vector
   // instance. For reference purposes, the equation is:
   // (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product
   // First, you'll load the reference to the current instance "this"
   // stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
   // instruction, will pop the reference off the stack and look up the
   // field "x", specified by the FieldInfo token "xField".
   mthdIL->Emit( OpCodes::Ldarg_0 );
   mthdIL->Emit( OpCodes::Ldfld, xField );
   
   // That completed, the value stored at field "x" is now atop the stack.
   // Now, you'll do the same for the Object reference we passed as a
   // parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
   // you'll have the value stored in field "x" for the passed instance
   // atop the stack.
   mthdIL->Emit( OpCodes::Ldarg_1 );
   mthdIL->Emit( OpCodes::Ldfld, xField );
   
   // There will now be two values atop the stack - the "x" value for the
   // current vector instance, and the "x" value for the passed instance.
   // You'll now multiply them, and push the result onto the evaluation stack.
   mthdIL->Emit( OpCodes::Mul_Ovf_Un );
   
   // Now, repeat this for the "y" fields of both vectors.
   mthdIL->Emit( OpCodes::Ldarg_0 );
   mthdIL->Emit( OpCodes::Ldfld, yField );
   mthdIL->Emit( OpCodes::Ldarg_1 );
   mthdIL->Emit( OpCodes::Ldfld, yField );
   mthdIL->Emit( OpCodes::Mul_Ovf_Un );
   
   // At this time, the results of both multiplications should be atop
   // the stack. You'll now add them and push the result onto the stack.
   mthdIL->Emit( OpCodes::Add_Ovf_Un );
   
   // Multiply both "z" field and push the result onto the stack.
   mthdIL->Emit( OpCodes::Ldarg_0 );
   mthdIL->Emit( OpCodes::Ldfld, zField );
   mthdIL->Emit( OpCodes::Ldarg_1 );
   mthdIL->Emit( OpCodes::Ldfld, zField );
   mthdIL->Emit( OpCodes::Mul_Ovf_Un );
   
   // Finally, add the result of multiplying the "z" fields with the
   // result of the earlier addition, and push the result - the dot product -
   // onto the stack.
   mthdIL->Emit( OpCodes::Add_Ovf_Un );
   
   // The "ret" opcode will pop the last value from the stack and return it
   // to the calling method. You're all done!
   mthdIL->Emit( OpCodes::Ret );
   ivType = ivTypeBld->CreateType();
   return ivType;
}

int main()
{
   Type^ IVType = nullptr;
   Object^ aVector1 = nullptr;
   Object^ aVector2 = nullptr;
   array<Type^>^temp2 = {int::typeid,int::typeid,int::typeid};
   array<Type^>^aVtypes = temp2;
   array<Object^>^temp3 = {10,10,10};
   array<Object^>^aVargs1 = temp3;
   array<Object^>^temp4 = {20,20,20};
   array<Object^>^aVargs2 = temp4;
   
   // Call the  method to build our dynamic class.
   IVType = DynamicDotProductGen();
   Console::WriteLine( "---" );
   ConstructorInfo^ myDTctor = IVType->GetConstructor( aVtypes );
   aVector1 = myDTctor->Invoke( aVargs1 );
   aVector2 = myDTctor->Invoke( aVargs2 );
   array<Object^>^passMe = gcnew array<Object^>(1);
   passMe[ 0 ] = dynamic_cast<Object^>(aVector2);
   Console::WriteLine( "(10, 10, 10) . (20, 20, 20) = {0}", IVType->InvokeMember( "DotProduct", BindingFlags::InvokeMethod, nullptr, aVector1, passMe ) );
}

// +++ OUTPUT +++
// ---
// (10, 10, 10) . (20, 20, 20) = 600
using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;

class TestILGenerator
{
    public static Type DynamicDotProductGen()
    {
       Type ivType = null;
       Type[] ctorParams = new Type[] { typeof(int),
                                typeof(int),
                        typeof(int)};
    
       AppDomain myDomain = Thread.GetDomain();
       AssemblyName myAsmName = new AssemblyName();
       myAsmName.Name = "IntVectorAsm";
    
       AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
                      myAsmName,
                      AssemblyBuilderAccess.RunAndSave);

       ModuleBuilder IntVectorModule = myAsmBuilder.DefineDynamicModule("IntVectorModule",
                                        "Vector.dll");

       TypeBuilder ivTypeBld = IntVectorModule.DefineType("IntVector",
                                      TypeAttributes.Public);

       FieldBuilder xField = ivTypeBld.DefineField("x", typeof(int),
                                                       FieldAttributes.Private);
       FieldBuilder yField = ivTypeBld.DefineField("y", typeof(int),
                                                       FieldAttributes.Private);
       FieldBuilder zField = ivTypeBld.DefineField("z", typeof(int),
                                                       FieldAttributes.Private);

           Type objType = Type.GetType("System.Object");
           ConstructorInfo objCtor = objType.GetConstructor(new Type[0]);

       ConstructorBuilder ivCtor = ivTypeBld.DefineConstructor(
                      MethodAttributes.Public,
                      CallingConventions.Standard,
                      ctorParams);
       ILGenerator ctorIL = ivCtor.GetILGenerator();
           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Call, objCtor);
           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_1);
           ctorIL.Emit(OpCodes.Stfld, xField);
           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_2);
           ctorIL.Emit(OpCodes.Stfld, yField);
           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_3);
           ctorIL.Emit(OpCodes.Stfld, zField);
       ctorIL.Emit(OpCodes.Ret);

       // This method will find the dot product of the stored vector
       // with another.

       Type[] dpParams = new Type[] { ivTypeBld };

           // Here, you create a MethodBuilder containing the
       // name, the attributes (public, static, private, and so on),
       // the return type (int, in this case), and a array of Type
       // indicating the type of each parameter. Since the sole parameter
       // is a IntVector, the very class you're creating, you will
       // pass in the TypeBuilder (which is derived from Type) instead of
       // a Type object for IntVector, avoiding an exception.

       // -- This method would be declared in C# as:
       //    public int DotProduct(IntVector aVector)

           MethodBuilder dotProductMthd = ivTypeBld.DefineMethod(
                                  "DotProduct",
                          MethodAttributes.Public,
                                          typeof(int),
                                          dpParams);

       // A ILGenerator can now be spawned, attached to the MethodBuilder.

       ILGenerator mthdIL = dotProductMthd.GetILGenerator();
    
       // Here's the body of our function, in MSIL form. We're going to find the
       // "dot product" of the current vector instance with the passed vector
       // instance. For reference purposes, the equation is:
       // (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product

       // First, you'll load the reference to the current instance "this"
       // stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
       // instruction, will pop the reference off the stack and look up the
       // field "x", specified by the FieldInfo token "xField".

       mthdIL.Emit(OpCodes.Ldarg_0);
       mthdIL.Emit(OpCodes.Ldfld, xField);

       // That completed, the value stored at field "x" is now atop the stack.
       // Now, you'll do the same for the object reference we passed as a
       // parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
       // you'll have the value stored in field "x" for the passed instance
       // atop the stack.

       mthdIL.Emit(OpCodes.Ldarg_1);
       mthdIL.Emit(OpCodes.Ldfld, xField);

           // There will now be two values atop the stack - the "x" value for the
       // current vector instance, and the "x" value for the passed instance.
       // You'll now multiply them, and push the result onto the evaluation stack.

       mthdIL.Emit(OpCodes.Mul_Ovf_Un);

       // Now, repeat this for the "y" fields of both vectors.

       mthdIL.Emit(OpCodes.Ldarg_0);
       mthdIL.Emit(OpCodes.Ldfld, yField);
       mthdIL.Emit(OpCodes.Ldarg_1);
       mthdIL.Emit(OpCodes.Ldfld, yField);
       mthdIL.Emit(OpCodes.Mul_Ovf_Un);

       // At this time, the results of both multiplications should be atop
       // the stack. You'll now add them and push the result onto the stack.

       mthdIL.Emit(OpCodes.Add_Ovf_Un);

       // Multiply both "z" field and push the result onto the stack.
       mthdIL.Emit(OpCodes.Ldarg_0);
       mthdIL.Emit(OpCodes.Ldfld, zField);
       mthdIL.Emit(OpCodes.Ldarg_1);
       mthdIL.Emit(OpCodes.Ldfld, zField);
       mthdIL.Emit(OpCodes.Mul_Ovf_Un);

       // Finally, add the result of multiplying the "z" fields with the
       // result of the earlier addition, and push the result - the dot product -
       // onto the stack.
       mthdIL.Emit(OpCodes.Add_Ovf_Un);

       // The "ret" opcode will pop the last value from the stack and return it
       // to the calling method. You're all done!

       mthdIL.Emit(OpCodes.Ret);

       ivType = ivTypeBld.CreateType();

       return ivType;
    }

    public static void Main() {
    
       Type IVType = null;
           object aVector1 = null;
           object aVector2 = null;
       Type[] aVtypes = new Type[] {typeof(int), typeof(int), typeof(int)};
           object[] aVargs1 = new object[] {10, 10, 10};
           object[] aVargs2 = new object[] {20, 20, 20};
    
       // Call the  method to build our dynamic class.

       IVType = DynamicDotProductGen();

           Console.WriteLine("---");

       ConstructorInfo myDTctor = IVType.GetConstructor(aVtypes);
       aVector1 = myDTctor.Invoke(aVargs1);
       aVector2 = myDTctor.Invoke(aVargs2);

       object[] passMe = new object[1];
           passMe[0] = (object)aVector2;

       Console.WriteLine("(10, 10, 10) . (20, 20, 20) = {0}",
                 IVType.InvokeMember("DotProduct",
                          BindingFlags.InvokeMethod,
                          null,
                          aVector1,
                          passMe));

       // +++ OUTPUT +++
       // ---
       // (10, 10, 10) . (20, 20, 20) = 600
    }
}
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit

 _


Class TestILGenerator
   
   
   Public Shared Function DynamicDotProductGen() As Type
      
      Dim ivType As Type = Nothing
      Dim ctorParams() As Type = {GetType(Integer), GetType(Integer), GetType(Integer)}
      
      Dim myDomain As AppDomain = Thread.GetDomain()
      Dim myAsmName As New AssemblyName()
      myAsmName.Name = "IntVectorAsm"
      
      Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly( _
                        myAsmName, _
                        AssemblyBuilderAccess.RunAndSave)
      
      Dim IntVectorModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule( _
                         "IntVectorModule", _
                         "Vector.dll")
      
      Dim ivTypeBld As TypeBuilder = IntVectorModule.DefineType("IntVector", TypeAttributes.Public)
      
      Dim xField As FieldBuilder = ivTypeBld.DefineField("x", _
                                 GetType(Integer), _
                                 FieldAttributes.Private)
      Dim yField As FieldBuilder = ivTypeBld.DefineField("y", _ 
                                 GetType(Integer), _
                                 FieldAttributes.Private)
      Dim zField As FieldBuilder = ivTypeBld.DefineField("z", _
                                 GetType(Integer), _
                                 FieldAttributes.Private)
      
      
      Dim objType As Type = Type.GetType("System.Object")
      Dim objCtor As ConstructorInfo = objType.GetConstructor(New Type() {})
      
      Dim ivCtor As ConstructorBuilder = ivTypeBld.DefineConstructor( _
                     MethodAttributes.Public, _
                     CallingConventions.Standard, _
                     ctorParams)
      Dim ctorIL As ILGenerator = ivCtor.GetILGenerator()
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Call, objCtor)
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_1)
      ctorIL.Emit(OpCodes.Stfld, xField)
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_2)
      ctorIL.Emit(OpCodes.Stfld, yField)
      ctorIL.Emit(OpCodes.Ldarg_0)
      ctorIL.Emit(OpCodes.Ldarg_3)
      ctorIL.Emit(OpCodes.Stfld, zField)
      ctorIL.Emit(OpCodes.Ret)
     

      ' Now, you'll construct the method find the dot product of two vectors. First,
      ' let's define the parameters that will be accepted by the method. In this case,
      ' it's an IntVector itself!

      Dim dpParams() As Type = {ivTypeBld}
      
      ' Here, you create a MethodBuilder containing the
      ' name, the attributes (public, static, private, and so on),
      ' the return type (int, in this case), and a array of Type
      ' indicating the type of each parameter. Since the sole parameter
      ' is a IntVector, the very class you're creating, you will
      ' pass in the TypeBuilder (which is derived from Type) instead of 
      ' a Type object for IntVector, avoiding an exception. 
      ' -- This method would be declared in VB.NET as:
      '    Public Function DotProduct(IntVector aVector) As Integer

      Dim dotProductMthd As MethodBuilder = ivTypeBld.DefineMethod("DotProduct", _
                        MethodAttributes.Public, GetType(Integer), _
                                            dpParams)
      
      ' A ILGenerator can now be spawned, attached to the MethodBuilder.
      Dim mthdIL As ILGenerator = dotProductMthd.GetILGenerator()
      
      ' Here's the body of our function, in MSIL form. We're going to find the
      ' "dot product" of the current vector instance with the passed vector 
      ' instance. For reference purposes, the equation is:
      ' (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product
      ' First, you'll load the reference to the current instance "this"
      ' stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
      ' instruction, will pop the reference off the stack and look up the
      ' field "x", specified by the FieldInfo token "xField".
      mthdIL.Emit(OpCodes.Ldarg_0)
      mthdIL.Emit(OpCodes.Ldfld, xField)
      
      ' That completed, the value stored at field "x" is now atop the stack.
      ' Now, you'll do the same for the object reference we passed as a
      ' parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
      ' you'll have the value stored in field "x" for the passed instance
      ' atop the stack.
      mthdIL.Emit(OpCodes.Ldarg_1)
      mthdIL.Emit(OpCodes.Ldfld, xField)
      
      ' There will now be two values atop the stack - the "x" value for the
      ' current vector instance, and the "x" value for the passed instance.
      ' You'll now multiply them, and push the result onto the evaluation stack.
      mthdIL.Emit(OpCodes.Mul_Ovf_Un)
      
      ' Now, repeat this for the "y" fields of both vectors.
      mthdIL.Emit(OpCodes.Ldarg_0)
      mthdIL.Emit(OpCodes.Ldfld, yField)
      mthdIL.Emit(OpCodes.Ldarg_1)
      mthdIL.Emit(OpCodes.Ldfld, yField)
      mthdIL.Emit(OpCodes.Mul_Ovf_Un)
      
      ' At this time, the results of both multiplications should be atop
      ' the stack. You'll now add them and push the result onto the stack.
      mthdIL.Emit(OpCodes.Add_Ovf_Un)
      
      ' Multiply both "z" field and push the result onto the stack.
      mthdIL.Emit(OpCodes.Ldarg_0)
      mthdIL.Emit(OpCodes.Ldfld, zField)
      mthdIL.Emit(OpCodes.Ldarg_1)
      mthdIL.Emit(OpCodes.Ldfld, zField)
      mthdIL.Emit(OpCodes.Mul_Ovf_Un)
      
      ' Finally, add the result of multiplying the "z" fields with the
      ' result of the earlier addition, and push the result - the dot product -
      ' onto the stack.
      mthdIL.Emit(OpCodes.Add_Ovf_Un)
      
      ' The "ret" opcode will pop the last value from the stack and return it
      ' to the calling method. You're all done!
      mthdIL.Emit(OpCodes.Ret)
      
      
      ivType = ivTypeBld.CreateType()
      
      Return ivType
   End Function 'DynamicDotProductGen
    
   
   Public Shared Sub Main()
      
      Dim IVType As Type = Nothing
      Dim aVector1 As Object = Nothing
      Dim aVector2 As Object = Nothing
      Dim aVtypes() As Type = {GetType(Integer), GetType(Integer), GetType(Integer)}
      Dim aVargs1() As Object = {10, 10, 10}
      Dim aVargs2() As Object = {20, 20, 20}
      
      ' Call the  method to build our dynamic class.
      IVType = DynamicDotProductGen()
      
      
      Dim myDTctor As ConstructorInfo = IVType.GetConstructor(aVtypes)
      aVector1 = myDTctor.Invoke(aVargs1)
      aVector2 = myDTctor.Invoke(aVargs2)
      
      Console.WriteLine("---")
      Dim passMe(0) As Object
      passMe(0) = CType(aVector2, Object)
      
      Console.WriteLine("(10, 10, 10) . (20, 20, 20) = {0}", _
                        IVType.InvokeMember("DotProduct", BindingFlags.InvokeMethod, _
                        Nothing, aVector1, passMe))
   End Sub
End Class



' +++ OUTPUT +++
' ---
' (10, 10, 10) . (20, 20, 20) = 600

Remarques

Pour plus d’informations sur cette API, consultez Remarques supplémentaires sur l’API pour TypeBuilder.

Constructeurs

TypeBuilder()

Initialise une nouvelle instance de la classe TypeBuilder.

Champs

UnspecifiedTypeSize

Signifie que la taille totale du type n’est pas spécifiée.

Propriétés

Assembly

Récupère l’assembly dynamique qui contient la définition de ce type.

AssemblyQualifiedName

Retourne le nom complet de ce type, qualifié par le nom complet de l'assembly.

Attributes

Définit et crée des instances de classes pendant l’exécution.

Attributes

Obtient les attributs associés à Type.

(Hérité de Type)
Attributes

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
BaseType

Récupère le type de base de ce type.

ContainsGenericParameters

Définit et crée des instances de classes pendant l’exécution.

ContainsGenericParameters

Obtient une valeur indiquant si l'objet Type actuel a des paramètres de type qui n'ont pas été remplacés par des types spécifiques.

(Hérité de Type)
ContainsGenericParameters

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
CustomAttributes

Obtient une collection qui contient les attributs personnalisés de ce membre.

(Hérité de MemberInfo)
DeclaredConstructors

Obtient une collection des constructeurs déclarés par le type actuel.

(Hérité de TypeInfo)
DeclaredEvents

Obtient une collection des événements définis par le type actuel.

(Hérité de TypeInfo)
DeclaredFields

Obtient une collection des champs définis par le type actuel.

(Hérité de TypeInfo)
DeclaredMembers

Obtient une collection du membre défini par le type actuel.

(Hérité de TypeInfo)
DeclaredMethods

Obtient une collection des méthodes définies par le type actuel.

(Hérité de TypeInfo)
DeclaredNestedTypes

Obtient une collection des types imbriqués définis par le type actuel.

(Hérité de TypeInfo)
DeclaredProperties

Obtient la collection des propriétés définies par le type actuel.

(Hérité de TypeInfo)
DeclaringMethod

Obtient la méthode qui a déclaré le paramètre de type générique actuel.

DeclaringMethod

Obtient un MethodBase représentant la méthode de déclaration, si le Type actuel représente un paramètre de type d’une méthode générique.

(Hérité de Type)
DeclaringType

Retourne le type qui a déclaré ce type.

FullName

Récupère le chemin complet de ce type.

GenericParameterAttributes

Obtient une valeur qui indique la covariance et les contraintes spéciales du paramètre de type générique actuel.

GenericParameterAttributes

Obtient une combinaison d'indicateurs GenericParameterAttributes qui décrivent la covariance et des contraintes spéciales du paramètre de type générique actuel.

(Hérité de Type)
GenericParameterPosition

Obtient la position d’un paramètre de type dans la liste des paramètres de type du type générique qui a déclaré le paramètre.

GenericParameterPosition

Obtient la position du paramètre de type dans la liste des paramètres de type du type générique ou de la méthode qui a déclaré le paramètre, quand l'objet Type représente un paramètre de type d'un type générique ou une méthode générique.

(Hérité de Type)
GenericTypeArguments

Définit et crée des instances de classes pendant l’exécution.

GenericTypeArguments

Obtient un tableau des arguments de type générique pour ce type.

(Hérité de Type)
GenericTypeArguments

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GenericTypeParameters

Obtient un tableau des paramètres de type génériques de l'instance actuelle.

(Hérité de TypeInfo)
GUID

Récupère le GUID de ce type.

HasElementType

Obtient une valeur indiquant si le Type actuel englobe ou se réfère à un autre type, c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence.

(Hérité de Type)
HasElementType

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
ImplementedInterfaces

Obtient une collection d'interfaces implémentée par le type actuel.

(Hérité de TypeInfo)
IsAbstract

Obtient une valeur indiquant si le Type est abstrait et doit être substitué.

(Hérité de Type)
IsAbstract

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsAnsiClass

Obtient une valeur indiquant si l'attribut de format de chaîne AnsiClass est sélectionné pour Type.

(Hérité de Type)
IsAnsiClass

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsArray

Obtient une valeur qui indique si le type est un tableau.

(Hérité de Type)
IsArray

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsAutoClass

Obtient une valeur indiquant si l'attribut de format de chaîne AutoClass est sélectionné pour Type.

(Hérité de Type)
IsAutoClass

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsAutoLayout

Obtient une valeur qui indique si les champs du type actuel sont placés automatiquement par le Common Language Runtime.

(Hérité de Type)
IsAutoLayout

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsByRef

Obtient une valeur indiquant si Type est passé par référence.

(Hérité de Type)
IsByRef

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsByRefLike

Obtient une valeur qui indique si le type est une structure de type byref.

IsByRefLike

Obtient une valeur qui indique si le type est une structure de type byref.

(Hérité de Type)
IsClass

Obtient une valeur indiquant si le Type est une classe ou un délégué, c'est-à-dire ni un type valeur ni une interface.

(Hérité de Type)
IsClass

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsCollectible

Obtient une valeur qui indique si cet objet MemberInfo fait partie d’un assembly contenu dans un AssemblyLoadContext pouvant être collecté.

(Hérité de MemberInfo)
IsCOMObject

Obtient une valeur indiquant si Type est un objet COM.

(Hérité de Type)
IsCOMObject

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsConstructedGenericType

Obtient une valeur qui indique si cet objet représente un type générique construit.

IsConstructedGenericType

Obtient une valeur qui indique si cet objet représente un type générique construit. Vous pouvez créer des instances d'un type générique construit.

(Hérité de Type)
IsContextful

Obtient une valeur indiquant si Type peut être hébergé dans un contexte.

(Hérité de Type)
IsEnum

Définit et crée des instances de classes pendant l’exécution.

IsEnum

Obtient une valeur indiquant si le Type actuel représente une énumération.

(Hérité de Type)
IsEnum

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsExplicitLayout

Obtient une valeur qui indique si les champs du type actuel sont placés aux offsets explicitement spécifiés.

(Hérité de Type)
IsExplicitLayout

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsFunctionPointer

Obtient une valeur qui indique si le actuel Type est un pointeur de fonction.

(Hérité de Type)
IsGenericMethodParameter

Obtient une valeur indiquant si le Type actuel représente un paramètre de type dans la définition d’une méthode générique.

(Hérité de Type)
IsGenericParameter

Obtient une valeur indiquant si le type actuel est un paramètre de type générique.

IsGenericParameter

Obtient une valeur indiquant si le Type actuel représente un paramètre de type d'une définition de type ou de méthode générique.

(Hérité de Type)
IsGenericType

Obtient une valeur indiquant si le type actuel est un type générique.

IsGenericType

Obtient une valeur indiquant si le type actuel est un type générique.

(Hérité de Type)
IsGenericTypeDefinition

Obtient une valeur qui indique si le TypeBuilder actuel représente une définition de type générique, à partir de laquelle d’autres types génériques peuvent être construits.

IsGenericTypeDefinition

Obtient une valeur qui indique si le Type actuel représente une définition de type générique, à partir de laquelle d'autres types génériques peuvent être construits.

(Hérité de Type)
IsGenericTypeParameter

Obtient une valeur indiquant si le Type actuel représente un paramètre de type dans la définition d’un type générique.

(Hérité de Type)
IsImport

Obtient une valeur qui indique si le Type a un attribut appliqué ComImportAttribute, indiquant qu'il a été importé d'une bibliothèque de types COM.

(Hérité de Type)
IsImport

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsInterface

Obtient une valeur indiquant si le Type est une interface, c'est-à-dire ni une classe ni un type valeur.

(Hérité de Type)
IsInterface

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsLayoutSequential

Obtient une valeur qui indique si les champs du type actuel sont placés séquentiellement, en respectant l'ordre dans lequel ils ont été définis ou émis aux métadonnées.

(Hérité de Type)
IsLayoutSequential

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsMarshalByRef

Obtient une valeur indiquant si Type est marshalé par référence.

(Hérité de Type)
IsMarshalByRef

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNested

Obtient une valeur indiquant si l'objet Type actuel représente un type dont la définition est imbriquée dans la définition d'un autre type.

(Hérité de Type)
IsNested

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedAssembly

Obtient une valeur indiquant si le Type est imbriqué et visible uniquement dans son propre assembly.

(Hérité de Type)
IsNestedAssembly

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedFamANDAssem

Obtient une valeur indiquant si le Type est imbriqué et visible uniquement par rapport aux classes qui appartiennent à la fois à sa propre famille et à son propre assembly.

(Hérité de Type)
IsNestedFamANDAssem

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedFamily

Obtient une valeur indiquant si le Type est imbriqué et visible uniquement dans sa propre famille.

(Hérité de Type)
IsNestedFamily

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedFamORAssem

Obtient une valeur indiquant si le Type est imbriqué et visible uniquement par rapport aux classes qui appartiennent à sa propre famille ou à son propre assembly.

(Hérité de Type)
IsNestedFamORAssem

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedPrivate

Obtient une valeur indiquant si le Type est imbriqué et déclaré privé.

(Hérité de Type)
IsNestedPrivate

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNestedPublic

Obtient une valeur indiquant si une classe est imbriquée et déclarée publique.

(Hérité de Type)
IsNestedPublic

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsNotPublic

Obtient une valeur indiquant si Type n'est pas déclaré public.

(Hérité de Type)
IsNotPublic

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsPointer

Obtient une valeur indiquant si Type est un pointeur.

(Hérité de Type)
IsPointer

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsPrimitive

Obtient une valeur indiquant si le Type est l'un des types primitifs.

(Hérité de Type)
IsPrimitive

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsPublic

Obtient une valeur indiquant si Type est déclaré public.

(Hérité de Type)
IsPublic

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsSealed

Obtient une valeur indiquant si Type est déclaré sealed.

(Hérité de Type)
IsSealed

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsSecurityCritical

Obtient une valeur qui indique si le type actuel est critique de sécurité (security-critical) ou critique sécurisé (security-safe-critical), et peut donc effectuer des opérations critiques.

IsSecurityCritical

Obtient une valeur qui indique si le type actuel est critique de sécurité (security-critical) ou critique sécurisé (security-safe-critical) au niveau de confiance actuel et peut donc exécuter des opérations critiques.

(Hérité de Type)
IsSecuritySafeCritical

Obtient une valeur qui indique si le type actuel est critique sécurisé, autrement dit s’il peut effectuer des opérations critiques et s’il est accessible par du code transparent.

IsSecuritySafeCritical

Obtient une valeur qui indique si le type actuel est critique sécurisé au niveau de confiance actuel, autrement dit s'il peut exécuter des opérations critiques et être accessible par du code transparent.

(Hérité de Type)
IsSecurityTransparent

Obtient une valeur qui indique si le type actuel est transparent et s’il ne peut donc pas effectuer d’opérations critiques.

IsSecurityTransparent

Obtient une valeur qui indique si le type actuel est transparent au niveau de confiance actuel et ne peut donc pas exécuter d'opérations critiques.

(Hérité de Type)
IsSerializable

Définit et crée des instances de classes pendant l’exécution.

IsSerializable
Obsolète.

Obtient une valeur indiquant si est Type sérialisable binaire.

(Hérité de Type)
IsSerializable

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsSignatureType

Obtient une valeur qui indique si le type est un type de signature.

(Hérité de Type)
IsSpecialName

Obtient une valeur indiquant si le type a un nom qui nécessite un traitement spécial.

(Hérité de Type)
IsSpecialName

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsSZArray

Définit et crée des instances de classes pendant l’exécution.

IsSZArray

Obtient une valeur qui indique si le type est un type tableau qui peut représenter uniquement un tableau unidimensionnel avec une limite inférieure à zéro.

(Hérité de Type)
IsTypeDefinition

Définit et crée des instances de classes pendant l’exécution.

IsTypeDefinition

Obtient une valeur qui indique si le type est une définition de type.

(Hérité de Type)
IsUnicodeClass

Obtient une valeur indiquant si l'attribut de format de chaîne UnicodeClass est sélectionné pour Type.

(Hérité de Type)
IsUnicodeClass

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsUnmanagedFunctionPointer

Obtient une valeur qui indique si le actuel Type est un pointeur de fonction non managé.

(Hérité de Type)
IsValueType

Obtient une valeur indiquant si le Type est un type valeur.

(Hérité de Type)
IsValueType

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsVariableBoundArray

Définit et crée des instances de classes pendant l’exécution.

IsVariableBoundArray

Obtient une valeur qui indique si le type est un type tableau qui peut représenter uniquement un tableau multidimensionnel ou un tableau avec une limite inférieure arbitraire.

(Hérité de Type)
IsVisible

Obtient une valeur qui indique si Type est accessible par code à l'extérieur de l'assembly.

(Hérité de Type)
IsVisible

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
MemberType

Obtient une valeur MemberTypes qui indique que ce membre est un type ou un type imbriqué.

(Hérité de Type)
MemberType

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
MetadataToken

Obtient un jeton qui identifie le module dynamique actuel dans les métadonnées.

MetadataToken

Obtient une valeur qui identifie un élément de métadonnées.

(Hérité de MemberInfo)
Module

Récupère le module dynamique qui contient la définition de ce type.

Name

Récupère le nom de ce type.

Namespace

Récupère l’espace de noms dans lequel ce TypeBuilder est défini.

PackingSize

Récupère la taille de compactage de ce type.

PackingSizeCore

En cas de substitution dans une classe dérivée, obtient la taille d’emballage de ce type.

ReflectedType

Retourne le type qui a été utilisé pour obtenir ce type.

ReflectedType

Obtient l'objet classe utilisé pour obtenir cette instance de MemberInfo.

(Hérité de MemberInfo)
Size

Récupère la taille totale d’un type.

SizeCore

En cas de substitution dans une classe dérivée, obtient la taille totale d’un type.

StructLayoutAttribute

Obtient un StructLayoutAttribute qui décrit la disposition du type actuel.

(Hérité de Type)
StructLayoutAttribute

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
TypeHandle

Non pris en charge dans les modules dynamiques.

TypeInitializer

Obtient l'initialiseur du type.

(Hérité de Type)
TypeInitializer

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
TypeToken

Retourne le jeton de ce type.

UnderlyingSystemType

Retourne le type de système sous-jacent pour ce TypeBuilder.

UnderlyingSystemType

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)

Méthodes

AddDeclarativeSecurity(SecurityAction, PermissionSet)

Ajoute la sécurité déclarative à ce type.

AddInterfaceImplementation(Type)

Ajoute une interface implémentée par ce type.

AddInterfaceImplementationCore(Type)

En cas de substitution dans une classe dérivée, ajoute une interface que ce type implémente.

AsType()

Retourne le type actuel sous forme d'objet Type.

(Hérité de TypeInfo)
CreateType()

Crée un objet Type pour la classe. Après avoir défini les champs et les méthodes sur la classe, CreateType est appelé pour charger son objet Type.

CreateTypeInfo()

Obtient un objet TypeInfo qui représente ce type.

CreateTypeInfoCore()

En cas de substitution dans une classe dérivée, obtient un TypeInfo objet qui représente ce type.

DefineConstructor(MethodAttributes, CallingConventions, Type[])

Ajoute un nouveau constructeur au type avec les attributs donnés et la signature.

DefineConstructor(MethodAttributes, CallingConventions, Type[], Type[][], Type[][])

Ajoute un nouveau constructeur au type, avec les attributs, la signature et les modificateurs personnalisés donnés.

DefineConstructorCore(MethodAttributes, CallingConventions, Type[], Type[][], Type[][])

En cas de substitution dans une classe dérivée, ajoute un nouveau constructeur au type, avec les attributs, la signature et les modificateurs personnalisés donnés.

DefineDefaultConstructor(MethodAttributes)

Définit le constructeur sans paramètre. Le constructeur défini ici appelle simplement le constructeur sans paramètre du parent.

DefineDefaultConstructorCore(MethodAttributes)

En cas de substitution dans une classe dérivée, définit le constructeur sans paramètre. Le constructeur défini ici appelle le constructeur sans paramètre du parent.

DefineEvent(String, EventAttributes, Type)

Ajoute un nouvel événement au type avec le nom, les attributs et le type d’événement donnés.

DefineEventCore(String, EventAttributes, Type)

En cas de substitution dans une classe dérivée, ajoute un nouvel événement au type, avec le nom, les attributs et le type d’événement donnés.

DefineField(String, Type, FieldAttributes)

Ajoute un nouveau champ au type avec les nom, attributs et type de champ donnés.

DefineField(String, Type, Type[], Type[], FieldAttributes)

Ajoute un nouveau champ au type avec le nom, les attributs, le type de champ et les modificateurs personnalisés donnés.

DefineFieldCore(String, Type, Type[], Type[], FieldAttributes)

En cas de substitution dans une classe dérivée, ajoute un nouveau champ au type, avec le nom, les attributs, le type de champ et les modificateurs personnalisés donnés.

DefineGenericParameters(String[])

Définit les paramètres de type générique pour le type actuel, en spécifiant leur nombre et leurs noms, et retourne un tableau d’objets GenericTypeParameterBuilder pouvant être utilisés pour définir leurs contraintes.

DefineGenericParametersCore(String[])

En cas de substitution dans une classe dérivée, définit les paramètres de type générique pour le type actuel, en spécifiant leur nombre et leurs noms.

DefineInitializedData(String, Byte[], FieldAttributes)

Définit un champ de données non initialisées dans la section .sdata du fichier exécutable portable (PE).

DefineInitializedDataCore(String, Byte[], FieldAttributes)

En cas de substitution dans une classe dérivée, définit le champ de données initialisé dans la section .sdata du fichier exécutable portable (PE).

DefineMethod(String, MethodAttributes)

Ajoute une nouvelle méthode au type, avec le nom et les attributs de méthode spécifiés.

DefineMethod(String, MethodAttributes, CallingConventions)

Ajoute une nouvelle méthode au type, avec le nom, les attributs de méthode et la convention d’appel spécifiés.

DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[])

Ajoute une nouvelle méthode au type, avec le nom, les attributs de méthode, la convention d’appel et la signature de méthode spécifiés.

DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

Ajoute une nouvelle méthode au type avec les nom, attributs de méthode, convention d’appel, signature de méthode et modificateurs personnalisés spécifiés.

DefineMethod(String, MethodAttributes, Type, Type[])

Ajoute une nouvelle méthode au type, avec le nom, les attributs de méthode et la signature de méthode spécifiés.

DefineMethodCore(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

En cas de substitution dans une classe dérivée, ajoute une nouvelle méthode au type, avec le nom, les attributs de méthode, la convention d’appel, la signature de méthode et les modificateurs personnalisés spécifiés.

DefineMethodOverride(MethodInfo, MethodInfo)

Spécifie un corps de méthode donné qui implémente une déclaration de méthode donnée, éventuellement avec un nom différent.

DefineMethodOverrideCore(MethodInfo, MethodInfo)

En cas de substitution dans une classe dérivée, spécifie un corps de méthode donné qui implémente une déclaration de méthode donnée, potentiellement avec un nom différent.

DefineNestedType(String)

Définit un type imbriqué, en fonction de son nom.

DefineNestedType(String, TypeAttributes)

Définit un type imbriqué, en fonction de son nom et de ses attributs.

DefineNestedType(String, TypeAttributes, Type)

Définit un type imbriqué, en fonction de son nom, de ses attributs et du type qu’il étend.

DefineNestedType(String, TypeAttributes, Type, Int32)

Définit un type imbriqué, en fonction de son nom, de ses attributs, de la taille totale du type et du type qu’il étend.

DefineNestedType(String, TypeAttributes, Type, PackingSize)

Définit un type imbriqué, en fonction de son nom, de ses attributs, du type qu’il étend et de la taille de compression.

DefineNestedType(String, TypeAttributes, Type, PackingSize, Int32)

Définit un type imbriqué, en fonction de ses nom, attributs, taille et du type qu’il étend.

DefineNestedType(String, TypeAttributes, Type, Type[])

Définit un type imbriqué, en fonction de son nom, de ses attributs, du type qu’il étend et des interfaces qu’il implémente.

DefineNestedTypeCore(String, TypeAttributes, Type, Type[], PackingSize, Int32)

En cas de substitution dans une classe dérivée, définit un type imbriqué, en fonction de son nom, de ses attributs, de sa taille et du type qu’il étend.

DefinePInvokeMethod(String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet)

Définit une méthode PInvoke en fonction de son nom, du nom de la DLL dans laquelle elle est définie, des attributs de la méthode, de sa convention d’appel, de son type de retour, des types de ses paramètres et des indicateurs PInvoke.

DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet)

Définit une méthode PInvoke en fonction de son nom, du nom de la DLL dans laquelle elle est définie, du nom du point d’entrée, des attributs de la méthode, de sa convention d’appel, de son type de retour, des types de ses paramètres et des indicateurs PInvoke.

DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet)

Définit une méthode PInvoke en fonction de son nom, du nom de la DLL dans laquelle elle est définie, du nom du point d’entrée, des attributs de la méthode, de sa convention d’appel, de son type de retour, des types de ses paramètres, des indicateurs PInvoke et des modificateurs personnalisés des paramètres et du type de retour.

DefinePInvokeMethodCore(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet)

En cas de substitution dans une classe dérivée, définit une méthode PInvoke avec le nom fourni, le nom de dll, le nom du point d’entrée, les attributs, la convention d’appel, le type de retour, les types des paramètres, les indicateurs PInvoke et les modificateurs personnalisés pour les paramètres et le type de retour.

DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[])

Ajoute une nouvelle propriété au type avec le nom, les attributs, la convention d’appel et la signature de propriété spécifiés.

DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

Ajoute une nouvelle propriété au type avec le nom, la convention d’appel, la signature de propriété et les modificateurs personnalisés spécifiés.

DefineProperty(String, PropertyAttributes, Type, Type[])

Ajoute une nouvelle propriété au type avec le nom et la signature de propriété donnés.

DefineProperty(String, PropertyAttributes, Type, Type[], Type[], Type[], Type[][], Type[][])

Ajoute une nouvelle propriété au type, avec le nom, la signature de propriété et les modificateurs personnalisés donnés.

DefinePropertyCore(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

En cas de substitution dans une classe dérivée, ajoute une nouvelle propriété au type, avec le nom donné, la convention d’appel, la signature de propriété et les modificateurs personnalisés.

DefineTypeInitializer()

Définit l’initialiseur de ce type.

DefineTypeInitializerCore()

En cas de substitution dans une classe dérivée, définit l’initialiseur pour ce type.

DefineUninitializedData(String, Int32, FieldAttributes)

Définit un champ de données non initialisé dans la section .sdata du fichier exécutable portable (PE).

DefineUninitializedDataCore(String, Int32, FieldAttributes)

En cas de substitution dans une classe dérivée, définit un champ de données non initialisé dans la .sdata section du fichier exécutable portable (PE).

Equals(Object)

Détermine si le type de système sous-jacent de l’objet Type actuel est identique au type de système sous-jacent du Object spécifié.

(Hérité de Type)
Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de MemberInfo)
Equals(Type)

Détermine si le type de système sous-jacent du Type actuel est identique au type de système sous-jacent du Type spécifié.

(Hérité de Type)
FindInterfaces(TypeFilter, Object)

Retourne un tableau d'objets Type représentant une liste filtrée d'interfaces implémentées ou héritées par le Type actuel.

(Hérité de Type)
FindInterfaces(TypeFilter, Object)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

Retourne un tableau filtré d'objets MemberInfo du type du membre spécifié.

(Hérité de Type)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetArrayRank()

Définit et crée des instances de classes pendant l’exécution.

GetArrayRank()

Obtient le nombre de dimensions dans un tableau.

(Hérité de Type)
GetArrayRank()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetAttributeFlagsImpl()

En cas de substitution dans une classe dérivée, implémente la propriété Attributes et obtient une combinaison de bits de valeurs d’énumération qui indique les attributs qui sont associés au Type.

GetAttributeFlagsImpl()

En cas de substitution dans une classe dérivée, implémente la propriété Attributes et obtient une combinaison de bits de valeurs d’énumération qui indique les attributs qui sont associés au Type.

(Hérité de Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Recherche un constructeur dont les paramètres correspondent aux types d’arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d’appel indiquées.

(Hérité de Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

Recherche un constructeur dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés, à l’aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetConstructor(BindingFlags, Type[])

Recherche un constructeur dont les paramètres correspondent aux types d’arguments spécifiés, à l’aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetConstructor(Type, ConstructorInfo)

Retourne le constructeur du type générique construit spécifié qui correspond au constructeur spécifié de la définition de type générique.

GetConstructor(Type[])

Recherche un constructeur d'instance public dont les paramètres correspondent aux types contenus dans le tableau spécifié.

(Hérité de Type)
GetConstructor(Type[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche un constructeur dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés, à l’aide des contraintes de liaison et de la convention d’appel spécifiées.

GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche un constructeur dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés, à l’aide des contraintes de liaison et de la convention d’appel spécifiées.

(Hérité de Type)
GetConstructors()

Retourne tous les constructeurs publics définis pour le Type actuel.

(Hérité de Type)
GetConstructors()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetConstructors(BindingFlags)

Retourne un tableau d’objets ConstructorInfo représentant les constructeurs publics et non publics définis pour cette classe, comme spécifié.

GetConstructors(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetCustomAttributes(Boolean)

Retourne tous les attributs personnalisés définis pour ce type.

GetCustomAttributes(Boolean)

En cas de substitution dans une classe dérivée, retourne un tableau de tous les attributs personnalisés appliqués à ce membre.

(Hérité de MemberInfo)
GetCustomAttributes(Type, Boolean)

Retourne tous les attributs personnalisés du type actuel qui peuvent être assignés à un type spécifié.

GetCustomAttributes(Type, Boolean)

En cas de substitution dans une classe dérivée, retourne un tableau d’attributs personnalisés appliqués à ce membre et identifiés par Type.

(Hérité de MemberInfo)
GetCustomAttributesData()

Renvoie une liste d’objets CustomAttributeData représentant des données sur les attributs qui ont été appliqués au membre cible.

(Hérité de MemberInfo)
GetDeclaredEvent(String)

Renvoie un objet qui représente l’événement spécifié déclaré par le type actuel.

(Hérité de TypeInfo)
GetDeclaredField(String)

Retourne un objet qui représente le champ spécifié déclaré par le type actuel.

(Hérité de TypeInfo)
GetDeclaredMethod(String)

Renvoie un objet qui représente la méthode spécifiée déclarée par le type actuel.

(Hérité de TypeInfo)
GetDeclaredMethods(String)

Retourne une collection qui contient toutes les méthodes déclarées sur le type actuel qui correspondent au nom spécifié.

(Hérité de TypeInfo)
GetDeclaredNestedType(String)

Renvoie un objet qui représente le type imbriqué spécifié déclaré par le type actuel.

(Hérité de TypeInfo)
GetDeclaredProperty(String)

Renvoie un objet qui représente la propriété spécifiée déclarée par le type actuel.

(Hérité de TypeInfo)
GetDefaultMembers()

Recherche les membres définis pour le Type actuel dont le DefaultMemberAttribute est défini.

(Hérité de Type)
GetDefaultMembers()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetElementType()

L'appel de cette méthode lève toujours NotSupportedException.

GetEnumName(Object)

Retourne le nom de la constante qui a la valeur spécifiée, pour le type énumération actuel.

(Hérité de Type)
GetEnumName(Object)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEnumNames()

Retourne les noms des membres du type énumération actuel.

(Hérité de Type)
GetEnumNames()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEnumUnderlyingType()

Retourne le type sous-jacent du type énumération actuel.

(Hérité de Type)
GetEnumUnderlyingType()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEnumValues()

Retourne un tableau des valeurs des constantes dans le type énumération actuel.

(Hérité de Type)
GetEnumValues()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEnumValuesAsUnderlyingType()

Récupère un tableau des valeurs des constantes de type sous-jacentes de ce type d’énumération.

(Hérité de Type)
GetEvent(String)

Retourne l'objet EventInfo représentant l'événement public spécifié.

(Hérité de Type)
GetEvent(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEvent(String, BindingFlags)

Retourne l’événement avec le nom spécifié.

GetEvent(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEvents()

Retourne les événements publics déclarés ou hérités par ce type.

GetEvents()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetEvents(BindingFlags)

Retourne les événements publics et non publics déclarés par ce type.

GetEvents(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetField(String)

Recherche le champ public portant le nom spécifié.

(Hérité de Type)
GetField(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetField(String, BindingFlags)

Retourne le champ spécifié par le nom donné.

GetField(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetField(Type, FieldInfo)

Retourne le champ du type générique construit spécifié qui correspond au champ spécifié de la définition de type générique.

GetFields()

Retourne tous les champs publics du Type actuel.

(Hérité de Type)
GetFields()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetFields(BindingFlags)

Retourne les champs publics et non publics déclarés par ce type.

GetFields(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetFunctionPointerCallingConventions()

En cas de substitution dans une classe dérivée, retourne les conventions d’appel du pointeur Typede fonction actuel .

(Hérité de Type)
GetFunctionPointerParameterTypes()

En cas de substitution dans une classe dérivée, retourne les types de paramètres du pointeur Typede fonction actuel .

(Hérité de Type)
GetFunctionPointerReturnType()

En cas de substitution dans une classe dérivée, retourne le type de retour du pointeur Typede fonction actuel .

(Hérité de Type)
GetGenericArguments()

Retourne un tableau d’objets Type qui représentent les arguments de type d’un type générique ou les paramètres de type d’une définition de type générique.

GetGenericArguments()

Retourne un tableau d’objets Type qui représentent les arguments de type d’un type générique fermé ou les paramètres de type d’une définition de type générique.

(Hérité de Type)
GetGenericArguments()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetGenericParameterConstraints()

Définit et crée des instances de classes pendant l’exécution.

GetGenericParameterConstraints()

Retourne un tableau d'objets Type qui représentent les contraintes qui s'exercent sur le paramètre de type générique actuel.

(Hérité de Type)
GetGenericParameterConstraints()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetGenericTypeDefinition()

Retourne un objet Type qui représente une définition de type générique à partir de laquelle le type actuel peut être obtenu.

GetGenericTypeDefinition()

Retourne un objet Type qui représente une définition de type générique à partir de laquelle le type générique actuel peut être construit.

(Hérité de Type)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Type)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de MemberInfo)
GetInterface(String)

Recherche l'interface avec le nom spécifié.

(Hérité de Type)
GetInterface(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetInterface(String, Boolean)

Retourne l’interface implémentée (directement ou indirectement) par cette classe avec le nom qualifié complet correspondant au nom de l’interface donnée.

GetInterface(String, Boolean)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetInterfaceMap(Type)

Retourne un mappage d’interface pour l’interface demandée.

GetInterfaces()

Retourne un tableau de toutes les interfaces implémentées sur ce type et ses types de base.

GetInterfaces()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMember(String)

Recherche les membres publics portant le nom spécifié.

(Hérité de Type)
GetMember(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMember(String, BindingFlags)

Recherche les membres spécifiés, à l'aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetMember(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMember(String, MemberTypes, BindingFlags)

Retourne tous les membres publics et non publics déclarés ou hérités par ce type, comme indiqué.

GetMember(String, MemberTypes, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMembers()

Retourne tous les membres publics du Type actuel.

(Hérité de Type)
GetMembers()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMembers(BindingFlags)

Retourne les membres publics et non publics déclarés ou hérités par ce type.

GetMembers(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMemberWithSameMetadataDefinitionAs(MemberInfo)

Recherche le MemberInfo sur le actif Type qui correspond au spécifié MemberInfo.

(Hérité de Type)
GetMethod(String)

Recherche la méthode publique avec le nom spécifié.

(Hérité de Type)
GetMethod(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMethod(String, BindingFlags)

Recherche la méthode spécifiée, à l'aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetMethod(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d'appel indiquées.

(Hérité de Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, à l'aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetMethod(String, BindingFlags, Type[])

Recherche la méthode spécifiée dont les paramètres correspondent aux types d’arguments spécifiés, à l’aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres génériques, aux types d'arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d'appel indiquées.

(Hérité de Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

Recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres génériques, aux types d'arguments et aux modificateurs spécifiés, à l'aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetMethod(String, Int32, BindingFlags, Type[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de Type)
GetMethod(String, Int32, Type[])

Recherche la méthode publique spécifiée dont les paramètres correspondent au nombre d’arguments génériques et aux types d’arguments spécifiés.

(Hérité de Type)
GetMethod(String, Int32, Type[], ParameterModifier[])

Recherche la méthode publique spécifiée dont les paramètres correspondent au nombre d’arguments génériques, aux modificateurs et aux types d’arguments spécifiés.

(Hérité de Type)
GetMethod(String, Type[])

Recherche la méthode publique spécifiée dont les paramètres correspondent aux types d'arguments spécifiés.

(Hérité de Type)
GetMethod(String, Type[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMethod(String, Type[], ParameterModifier[])

Recherche la méthode publique spécifiée dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés.

(Hérité de Type)
GetMethod(String, Type[], ParameterModifier[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMethod(Type, MethodInfo)

Retourne la méthode du type générique construit spécifié qui correspond à la méthode spécifiée de la définition de type générique.

GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, à l'aide des contraintes de liaison et de la convention d'appel spécifiées.

GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, à l'aide des contraintes de liaison et de la convention d'appel spécifiées.

(Hérité de Type)
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres, aux types d'arguments et aux modificateurs spécifiés, à l'aide des contraintes de liaison et de la convention d'appel spécifiées.

(Hérité de Type)
GetMethods()

Retourne toutes les méthodes publiques du Type actuel.

(Hérité de Type)
GetMethods()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetMethods(BindingFlags)

Retourne toutes les méthodes publiques et non publiques déclarées ou héritées par ce type, comme spécifié.

GetMethods(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetNestedType(String)

Recherche le type imbriqué public avec le nom spécifié.

(Hérité de Type)
GetNestedType(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetNestedType(String, BindingFlags)

Retourne les types imbriqués publics et non publics déclarés par ce type.

GetNestedType(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetNestedTypes()

Retourne les types publics imbriqués dans le Type actuel.

(Hérité de Type)
GetNestedTypes()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetNestedTypes(BindingFlags)

Retourne les types imbriqués publics et non publics déclarés ou hérités par ce type.

GetNestedTypes(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetOptionalCustomModifiers()

En cas de substitution dans une classe dérivée, retourne les modificateurs personnalisés facultatifs du actuel Type.

(Hérité de Type)
GetProperties()

Retourne toutes les propriétés publiques du Type actuel.

(Hérité de Type)
GetProperties()

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperties(BindingFlags)

Retourne toutes les propriétés publiques et non publiques déclarées ou héritées par ce type, comme spécifié.

GetProperties(BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String)

Recherche la propriété publique avec le nom spécifié.

(Hérité de Type)
GetProperty(String)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String, BindingFlags)

Recherche la propriété spécifiée, à l'aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetProperty(String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Recherche la propriété spécifiée dont les paramètres correspondent aux types d’arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison indiquées.

(Hérité de Type)
GetProperty(String, Type)

Recherche la propriété publique à l'aide du nom et du type de retour spécifiés.

(Hérité de Type)
GetProperty(String, Type)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String, Type, Type[])

Recherche la propriété publique spécifiée dont les paramètres correspondent aux types d’arguments spécifiés.

(Hérité de Type)
GetProperty(String, Type, Type[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String, Type, Type[], ParameterModifier[])

Recherche la propriété publique spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés.

(Hérité de Type)
GetProperty(String, Type, Type[], ParameterModifier[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetProperty(String, Type[])

Recherche la propriété publique spécifiée dont les paramètres correspondent aux types d’arguments spécifiés.

(Hérité de Type)
GetProperty(String, Type[])

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche la propriété spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, en utilisant les contraintes de liaison indiquées.

GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

En cas de substitution dans une classe dérivée, recherche la propriété spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, en utilisant les contraintes de liaison indiquées.

(Hérité de Type)
GetRequiredCustomModifiers()

En cas de substitution dans une classe dérivée, retourne les modificateurs personnalisés requis du actuel Type.

(Hérité de Type)
GetType()

Obtient le Type actuel.

(Hérité de Type)
GetType()

Identifie les attributs d’un membre et donne accès à ses métadonnées.

(Hérité de MemberInfo)
GetTypeCodeImpl()

Retourne le code du type sous-jacent de cette instance Type.

(Hérité de Type)
HasElementTypeImpl()

En cas de substitution dans une classe dérivée, implémente la propriété HasElementType et détermine si le Type actuel englobe ou se réfère à un autre type ; c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence.

HasElementTypeImpl()

En cas de substitution dans une classe dérivée, implémente la propriété HasElementType et détermine si le Type actuel englobe ou se réfère à un autre type ; c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence.

(Hérité de Type)
HasSameMetadataDefinitionAs(MemberInfo)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

Appelle le membre défini, à l'aide des contraintes de liaison spécifiées et correspondant à la liste d'arguments spécifiée.

(Hérité de Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

Appelle le membre spécifié, à l'aide des contraintes de liaison spécifiées et correspondant à la liste d'arguments et à la culture spécifiées.

(Hérité de Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

Appelle le membre spécifié. La méthode à appeler doit être accessible et fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée, sous les contraintes des attributs de binder et d’appel spécifiés.

IsArrayImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsArray et détermine si Type est un tableau.

IsArrayImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsArray et détermine si Type est un tableau.

(Hérité de Type)
IsAssignableFrom(Type)

Obtient une valeur qui indique si un objet Type spécifié peut être affecté à cet objet.

IsAssignableFrom(Type)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsAssignableFrom(TypeInfo)

Obtient une valeur qui indique si un objet TypeInfo spécifié peut être affecté à cet objet.

IsAssignableTo(Type)

Détermine si un type actuel peut être affecté à une variable du type targetType spécifié.

(Hérité de Type)
IsByRefImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsByRef et détermine si le Type est passé par référence.

IsByRefImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsByRef et détermine si le Type est passé par référence.

(Hérité de Type)
IsCOMObjectImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsCOMObject et détermine si le Type est un objet COM.

IsCOMObjectImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsCOMObject et détermine si le Type est un objet COM.

(Hérité de Type)
IsContextfulImpl()

Implémente la propriété IsContextful et détermine si Type peut être hébergé dans un contexte.

(Hérité de Type)
IsCreated()

Retourne une valeur qui indique si le type dynamique actuel a été créé.

IsCreatedCore()

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si le type dynamique actuel a été créé.

IsDefined(Type, Boolean)

Détermine si un attribut personnalisé est appliqué au type actuel.

IsDefined(Type, Boolean)

En cas de substitution dans une classe dérivée, indique si un ou plusieurs attributs du type spécifié ou de ses types dérivés sont appliqués à ce membre.

(Hérité de MemberInfo)
IsEnumDefined(Object)

Retourne une valeur qui indique si la valeur spécifiée existe dans le type énumération actuel.

(Hérité de Type)
IsEnumDefined(Object)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsEquivalentTo(Type)

Détermine si deux types COM ont la même identité et prennent en charge l'équivalence de type.

(Hérité de Type)
IsEquivalentTo(Type)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsInstanceOfType(Object)

Détermine si l'objet spécifié est une instance du Type actuel.

(Hérité de Type)
IsInstanceOfType(Object)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsMarshalByRefImpl()

Implémente la propriété IsMarshalByRef et détermine si le Type est marshalé par référence.

(Hérité de Type)
IsPointerImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsPointer et détermine si le Type est un pointeur.

IsPointerImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsPointer et détermine si le Type est un pointeur.

(Hérité de Type)
IsPrimitiveImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsPrimitive et détermine si Type est l'un des types primitifs.

IsPrimitiveImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsPrimitive et détermine si Type est l'un des types primitifs.

(Hérité de Type)
IsSubclassOf(Type)

Détermine si ce type est dérivé d’un type spécifié.

IsSubclassOf(Type)

Définit et crée des instances de classes pendant l’exécution.

(Hérité de TypeInfo)
IsValueTypeImpl()

Implémente la propriété IsValueType et détermine si le Type est un type valeur, c'est-à-dire ni une classe ni une interface.

(Hérité de Type)
MakeArrayType()

Retourne un objet Type qui représente un tableau unidimensionnel du type actuel, avec une limite inférieure de zéro.

MakeArrayType()

Retourne un objet Type qui représente un tableau unidimensionnel du type actuel, avec une limite inférieure de zéro.

(Hérité de Type)
MakeArrayType(Int32)

Retourne un objet Type qui représente un tableau du type actuel, avec le nombre spécifié de dimensions.

MakeArrayType(Int32)

Retourne un objet Type qui représente un tableau du type actuel, avec le nombre spécifié de dimensions.

(Hérité de Type)
MakeByRefType()

Retourne un objet Type qui représente le type actuel quand il est passé en tant que paramètre ref (ByRef en Visual Basic).

MakeByRefType()

Retourne un objet Type qui représente le type actuel quand il est passé en tant que paramètre ref (paramètre ByRef en Visual Basic).

(Hérité de Type)
MakeGenericType(Type[])

Substitue les éléments d’un tableau de types aux paramètres de type de la définition du type générique actuel et retourne le type construit résultant.

MakeGenericType(Type[])

Substitue les éléments d'un tableau de types aux paramètres de type de la définition du type générique actuel et retourne un objet Type qui représente le type construit résultant.

(Hérité de Type)
MakePointerType()

Retourne un objet Type qui représente le type d’un pointeur non managé vers le type actuel.

MakePointerType()

Retourne un objet Type qui représente un pointeur vers le type actuel.

(Hérité de Type)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
SetCustomAttribute(ConstructorInfo, Byte[])

Définit un attribut personnalisé à l’aide d’un objet blob d’attribut personnalisé spécifié.

SetCustomAttribute(CustomAttributeBuilder)

Définit un attribut personnalisé à l’aide d’un générateur d’attributs personnalisés.

SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, définit un attribut personnalisé sur cet assembly.

SetParent(Type)

Définit le type de base du type actuellement en cours d’élaboration.

SetParentCore(Type)

En cas de substitution dans une classe dérivée, définit le type de base du type en cours de construction.

ToString()

Retourne le nom du type sans l’espace de noms.

Implémentations d’interfaces explicites

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de MemberInfo)
_MemberInfo.GetType()

Obtient un objet Type représentant la classe MemberInfo.

(Hérité de MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

(Hérité de MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

(Hérité de Type)
_Type.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Type)
_TypeBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

_TypeBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

_TypeBuilder.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

_TypeBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Retourne un tableau de tous les attributs personnalisés définis sur ce membre, en dehors des attributs nommés, ou un tableau vide s’il n’y a aucun attribut personnalisé.

(Hérité de MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Retourne un tableau d’attributs personnalisés définis sur ce membre, identifiés par type, ou un tableau vide s’il n’y a aucun attribut personnalisé de ce type.

(Hérité de MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Indique si une ou plusieurs instances de attributeType sont définies sur ce membre.

(Hérité de MemberInfo)
IReflectableType.GetTypeInfo()

Retourne une représentation du type actuel en tant qu'objet TypeInfo.

(Hérité de TypeInfo)

Méthodes d’extension

GetCustomAttribute(MemberInfo, Type)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié.

GetCustomAttribute(MemberInfo, Type, Boolean)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre.

GetCustomAttribute<T>(MemberInfo)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié.

GetCustomAttribute<T>(MemberInfo, Boolean)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre.

GetCustomAttributes(MemberInfo)

Récupère une collection d'attributs personnalisés qui sont appliqués à un membre spécifié.

GetCustomAttributes(MemberInfo, Boolean)

Récupère une collection d'attributs personnalisés qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre.

GetCustomAttributes(MemberInfo, Type)

Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié.

GetCustomAttributes(MemberInfo, Type, Boolean)

Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre.

GetCustomAttributes<T>(MemberInfo)

Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié.

GetCustomAttributes<T>(MemberInfo, Boolean)

Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre.

IsDefined(MemberInfo, Type)

Indique si des attributs personnalisés d'un type spécifié sont appliqués à un membre spécifié.

IsDefined(MemberInfo, Type, Boolean)

Indique si les attributs personnalisés d'un type spécifié sont appliqués à un membre spécifié, et, éventuellement, appliqués à ses ancêtres.

GetTypeInfo(Type)

Retourne la représentation TypeInfo du type spécifié.

GetMetadataToken(MemberInfo)

Obtient un jeton de métadonnées pour le membre donné, s’il est disponible.

HasMetadataToken(MemberInfo)

Retourne une valeur qui indique si un jeton de métadonnées est disponible pour le membre spécifié.

GetRuntimeEvent(Type, String)

Récupère un objet qui représente l’événement spécifié.

GetRuntimeEvents(Type)

Récupère une collection qui représente tous les événements définis sur un type spécifié.

GetRuntimeField(Type, String)

Récupère un objet qui représente un champ spécifié.

GetRuntimeFields(Type)

Récupère une collection qui représente tous les événements définis sur un type spécifié.

GetRuntimeInterfaceMap(TypeInfo, Type)

Retourne un mappage d’interface pour le type et l’interface spécifiés.

GetRuntimeMethod(Type, String, Type[])

Récupère un objet qui représente une méthode spécifiée.

GetRuntimeMethods(Type)

Récupère une collection qui représente toutes les méthodes définies sur un type spécifié.

GetRuntimeProperties(Type)

Récupère une collection qui représente toutes les méthodes définies sur un type spécifié.

GetRuntimeProperty(Type, String)

Récupère un objet qui représente une propriété spécifiée.

GetConstructor(Type, Type[])

Définit et crée des instances de classes pendant l’exécution.

GetConstructors(Type)

Définit et crée des instances de classes pendant l’exécution.

GetConstructors(Type, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetFields(Type, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetGenericArguments(Type)

Définit et crée des instances de classes pendant l’exécution.

GetInterfaces(Type)

Définit et crée des instances de classes pendant l’exécution.

GetMember(Type, String)

Définit et crée des instances de classes pendant l’exécution.

GetMember(Type, String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetMembers(Type)

Définit et crée des instances de classes pendant l’exécution.

GetMethods(Type)

Définit et crée des instances de classes pendant l’exécution.

GetNestedType(Type, String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetProperties(Type)

Définit et crée des instances de classes pendant l’exécution.

GetProperties(Type, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetProperty(Type, String, BindingFlags)

Définit et crée des instances de classes pendant l’exécution.

GetProperty(Type, String, Type)

Définit et crée des instances de classes pendant l’exécution.

GetProperty(Type, String, Type, Type[])

Définit et crée des instances de classes pendant l’exécution.

IsAssignableFrom(Type, Type)

Définit et crée des instances de classes pendant l’exécution.

IsInstanceOfType(Type, Object)

Définit et crée des instances de classes pendant l’exécution.

S’applique à

Voir aussi