Partager via


GenericTypeParameterBuilder Classe

Définition

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

public ref class GenericTypeParameterBuilder sealed : Type
public ref class GenericTypeParameterBuilder sealed : System::Reflection::TypeInfo
public ref class GenericTypeParameterBuilder abstract : System::Reflection::TypeInfo
public sealed class GenericTypeParameterBuilder : Type
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
public abstract class GenericTypeParameterBuilder : System.Reflection.TypeInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : Type
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
type GenericTypeParameterBuilder = class
    inherit Type
type GenericTypeParameterBuilder = class
    inherit TypeInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type GenericTypeParameterBuilder = class
    inherit Type
[<System.Runtime.InteropServices.ComVisible(true)>]
type GenericTypeParameterBuilder = class
    inherit TypeInfo
Public NotInheritable Class GenericTypeParameterBuilder
Inherits Type
Public NotInheritable Class GenericTypeParameterBuilder
Inherits TypeInfo
Public MustInherit Class GenericTypeParameterBuilder
Inherits TypeInfo
Héritage
GenericTypeParameterBuilder
Héritage
GenericTypeParameterBuilder
Héritage
GenericTypeParameterBuilder
Attributs

Exemples

L’exemple de code suivant crée un type générique avec deux paramètres de type et les enregistre dans l’assembly GenericEmitExample1.dll. Vous pouvez utiliser le Ildasm.exe (désassembleur IL) pour afficher les types générés. Pour obtenir une explication plus détaillée des étapes impliquées dans la définition d’un type générique dynamique, consultez How to : Define a Generic Type with Reflection Emit.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Collections::Generic;

// Dummy class to satisfy TFirst constraints.
//
public ref class Example {};

// Define a trivial base class and two trivial interfaces 
// to use when demonstrating constraints.
//
public ref class ExampleBase {};
public interface class IExampleA {};
public interface class IExampleB {};

// Define a trivial type that can substitute for type parameter 
// TSecond.
//
public ref class ExampleDerived : ExampleBase, IExampleA, IExampleB {};

// List the constraint flags. The GenericParameterAttributes
// enumeration contains two sets of attributes, variance and
// constraints. For this example, only constraints are used.
//
static void ListConstraintAttributes( Type^ t )
{
   // Mask off the constraint flags. 
   GenericParameterAttributes constraints = 
       t->GenericParameterAttributes & 
       GenericParameterAttributes::SpecialConstraintMask;

   if ((constraints & GenericParameterAttributes::ReferenceTypeConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    ReferenceTypeConstraint");

   if ((constraints & GenericParameterAttributes::NotNullableValueTypeConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    NotNullableValueTypeConstraint");

   if ((constraints & GenericParameterAttributes::DefaultConstructorConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    DefaultConstructorConstraint");
}

static void DisplayGenericParameters( Type^ t )
{
   if (!t->IsGenericType)
   {
       Console::WriteLine( L"Type '{0}' is not generic." );
       return;
   }
   if (!t->IsGenericTypeDefinition)
       t = t->GetGenericTypeDefinition();

   array<Type^>^ typeParameters = t->GetGenericArguments();
   Console::WriteLine( L"\r\nListing {0} type parameters for type '{1}'.", 
       typeParameters->Length, t );

   for each ( Type^ tParam in typeParameters )
   {
       Console::WriteLine( L"\r\nType parameter {0}:", 
           tParam->ToString() );

       for each (Type^ c in tParam->GetGenericParameterConstraints())
       {
           if (c->IsInterface)
               Console::WriteLine( L"    Interface constraint: {0}", c);
           else
               Console::WriteLine( L"    Base type constraint: {0}", c);
       }
       ListConstraintAttributes(tParam);
   }
}

void main()
{
   // Define a dynamic assembly to contain the sample type. The
   // assembly will be run and also saved to disk, so
   // AssemblyBuilderAccess.RunAndSave is specified.
   //
   AppDomain^ myDomain = AppDomain::CurrentDomain;
   AssemblyName^ myAsmName = gcnew AssemblyName( L"GenericEmitExample1" );
   AssemblyBuilder^ myAssembly = myDomain->DefineDynamicAssembly( 
       myAsmName, AssemblyBuilderAccess::RunAndSave );

   // An assembly is made up of executable modules. For a single-
   // module assembly, the module name and file name are the same 
   // as the assembly name. 
   //
   ModuleBuilder^ myModule = myAssembly->DefineDynamicModule( 
       myAsmName->Name, String::Concat( myAsmName->Name, L".dll" ) );

   // Get type objects for the base class trivial interfaces to
   // be used as constraints.
   //
   Type^ baseType = ExampleBase::typeid; 
   Type^ interfaceA = IExampleA::typeid; 
   Type^ interfaceB = IExampleB::typeid;
   
   // Define the sample type.
   //
   TypeBuilder^ myType = myModule->DefineType( L"Sample", 
       TypeAttributes::Public );
   
   Console::WriteLine( L"Type 'Sample' is generic: {0}", 
       myType->IsGenericType );
   
   // Define type parameters for the type. Until you do this, 
   // the type is not generic, as the preceding and following 
   // WriteLine statements show. The type parameter names are
   // specified as an array of strings. To make the code
   // easier to read, each GenericTypeParameterBuilder is placed
   // in a variable with the same name as the type parameter.
   // 
   array<String^>^typeParamNames = {L"TFirst",L"TSecond"};
   array<GenericTypeParameterBuilder^>^typeParams = 
       myType->DefineGenericParameters( typeParamNames );

   GenericTypeParameterBuilder^ TFirst = typeParams[0];
   GenericTypeParameterBuilder^ TSecond = typeParams[1];

   Console::WriteLine( L"Type 'Sample' is generic: {0}", 
       myType->IsGenericType );
   
   // Apply constraints to the type parameters.
   //
   // A type that is substituted for the first parameter, TFirst,
   // must be a reference type and must have a parameterless
   // constructor.
   TFirst->SetGenericParameterAttributes( 
       GenericParameterAttributes::DefaultConstructorConstraint | 
       GenericParameterAttributes::ReferenceTypeConstraint 
   );

   // A type that is substituted for the second type
   // parameter must implement IExampleA and IExampleB, and
   // inherit from the trivial test class ExampleBase. The
   // interface constraints are specified as an array
   // containing the interface types. 
   array<Type^>^interfaceTypes = { interfaceA, interfaceB };
   TSecond->SetInterfaceConstraints( interfaceTypes );
   TSecond->SetBaseTypeConstraint( baseType );

   // The following code adds a private field named ExampleField,
   // of type TFirst.
   FieldBuilder^ exField = 
       myType->DefineField("ExampleField", TFirst, 
           FieldAttributes::Private);

   // Define a static method that takes an array of TFirst and 
   // returns a List<TFirst> containing all the elements of 
   // the array. To define this method it is necessary to create
   // the type List<TFirst> by calling MakeGenericType on the
   // generic type definition, generic<T> List. 
   // The parameter type is created by using the
   // MakeArrayType method. 
   //
   Type^ listOf = List::typeid;
   Type^ listOfTFirst = listOf->MakeGenericType(TFirst);
   array<Type^>^ mParamTypes = { TFirst->MakeArrayType() };

   MethodBuilder^ exMethod = 
       myType->DefineMethod("ExampleMethod", 
           MethodAttributes::Public | MethodAttributes::Static, 
           listOfTFirst, 
           mParamTypes);

   // Emit the method body. 
   // The method body consists of just three opcodes, to load 
   // the input array onto the execution stack, to call the 
   // List<TFirst> constructor that takes IEnumerable<TFirst>,
   // which does all the work of putting the input elements into
   // the list, and to return, leaving the list on the stack. The
   // hard work is getting the constructor.
   // 
   // The GetConstructor method is not supported on a 
   // GenericTypeParameterBuilder, so it is not possible to get 
   // the constructor of List<TFirst> directly. There are two
   // steps, first getting the constructor of generic<T> List and then
   // calling a method that converts it to the corresponding 
   // constructor of List<TFirst>.
   //
   // The constructor needed here is the one that takes an
   // IEnumerable<T>. Note, however, that this is not the 
   // generic type definition of generic<T> IEnumerable; instead, the
   // T from generic<T> List must be substituted for the T of 
   // generic<T> IEnumerable. (This seems confusing only because both
   // types have type parameters named T. That is why this example
   // uses the somewhat silly names TFirst and TSecond.) To get
   // the type of the constructor argument, take the generic
   // type definition generic<T> IEnumerable and 
   // call MakeGenericType with the first generic type parameter
   // of generic<T> List. The constructor argument list must be passed
   // as an array, with just one argument in this case.
   // 
   // Now it is possible to get the constructor of generic<T> List,
   // using GetConstructor on the generic type definition. To get
   // the constructor of List<TFirst>, pass List<TFirst> and
   // the constructor from generic<T> List to the static
   // TypeBuilder.GetConstructor method.
   //
   ILGenerator^ ilgen = exMethod->GetILGenerator();
        
   Type^ ienumOf = IEnumerable::typeid;
   Type^ TfromListOf = listOf->GetGenericArguments()[0];
   Type^ ienumOfT = ienumOf->MakeGenericType(TfromListOf);
   array<Type^>^ ctorArgs = {ienumOfT};

   ConstructorInfo^ ctorPrep = listOf->GetConstructor(ctorArgs);
   ConstructorInfo^ ctor = 
       TypeBuilder::GetConstructor(listOfTFirst, ctorPrep);

   ilgen->Emit(OpCodes::Ldarg_0);
   ilgen->Emit(OpCodes::Newobj, ctor);
   ilgen->Emit(OpCodes::Ret);

   // Create the type and save the assembly. 
   Type^ finished = myType->CreateType();
   myAssembly->Save( String::Concat( myAsmName->Name, L".dll" ) );

   // Invoke the method.
   // ExampleMethod is not generic, but the type it belongs to is
   // generic, so in order to get a MethodInfo that can be invoked
   // it is necessary to create a constructed type. The Example 
   // class satisfies the constraints on TFirst, because it is a 
   // reference type and has a default constructor. In order to
   // have a class that satisfies the constraints on TSecond, 
   // this code example defines the ExampleDerived type. These
   // two types are passed to MakeGenericMethod to create the
   // constructed type.
   //
   array<Type^>^ typeArgs = 
       { Example::typeid, ExampleDerived::typeid };
   Type^ constructed = finished->MakeGenericType(typeArgs);
   MethodInfo^ mi = constructed->GetMethod("ExampleMethod");

   // Create an array of Example objects, as input to the generic
   // method. This array must be passed as the only element of an 
   // array of arguments. The first argument of Invoke is 
   // null, because ExampleMethod is static. Display the count
   // on the resulting List<Example>.
   // 
   array<Example^>^ input = { gcnew Example(), gcnew Example() };
   array<Object^>^ arguments = { input };

   List<Example^>^ listX = 
       (List<Example^>^) mi->Invoke(nullptr, arguments);

   Console::WriteLine(
       "\nThere are {0} elements in the List<Example>.", 
       listX->Count);

   DisplayGenericParameters(finished);
}

/* This code example produces the following output:

Type 'Sample' is generic: False
Type 'Sample' is generic: True

There are 2 elements in the List<Example>.

Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.

Type parameter TFirst:
    ReferenceTypeConstraint
    DefaultConstructorConstraint

Type parameter TSecond:
    Interface constraint: IExampleA
    Interface constraint: IExampleB
    Base type constraint: ExampleBase
 */
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Collections.Generic;

// Define a trivial base class and two trivial interfaces
// to use when demonstrating constraints.
//
public class ExampleBase {}

public interface IExampleA {}

public interface IExampleB {}

// Define a trivial type that can substitute for type parameter
// TSecond.
//
public class ExampleDerived : ExampleBase, IExampleA, IExampleB {}

public class Example
{
    public static void Main()
    {
        // Define a dynamic assembly to contain the sample type. The
        // assembly will not be run, but only saved to disk, so
        // AssemblyBuilderAccess.Save is specified.
        //
        AppDomain myDomain = AppDomain.CurrentDomain;
        AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
        AssemblyBuilder myAssembly =
            myDomain.DefineDynamicAssembly(myAsmName,
                AssemblyBuilderAccess.RunAndSave);

        // An assembly is made up of executable modules. For a single-
        // module assembly, the module name and file name are the same
        // as the assembly name.
        //
        ModuleBuilder myModule =
            myAssembly.DefineDynamicModule(myAsmName.Name,
               myAsmName.Name + ".dll");

        // Get type objects for the base class trivial interfaces to
        // be used as constraints.
        //
        Type baseType = typeof(ExampleBase);
        Type interfaceA = typeof(IExampleA);
        Type interfaceB = typeof(IExampleB);

        // Define the sample type.
        //
        TypeBuilder myType =
            myModule.DefineType("Sample", TypeAttributes.Public);

        Console.WriteLine("Type 'Sample' is generic: {0}",
            myType.IsGenericType);

        // Define type parameters for the type. Until you do this,
        // the type is not generic, as the preceding and following
        // WriteLine statements show. The type parameter names are
        // specified as an array of strings. To make the code
        // easier to read, each GenericTypeParameterBuilder is placed
        // in a variable with the same name as the type parameter.
        //
        string[] typeParamNames = {"TFirst", "TSecond"};
        GenericTypeParameterBuilder[] typeParams =
            myType.DefineGenericParameters(typeParamNames);

        GenericTypeParameterBuilder TFirst = typeParams[0];
        GenericTypeParameterBuilder TSecond = typeParams[1];

        Console.WriteLine("Type 'Sample' is generic: {0}",
            myType.IsGenericType);

        // Apply constraints to the type parameters.
        //
        // A type that is substituted for the first parameter, TFirst,
        // must be a reference type and must have a parameterless
        // constructor.
        TFirst.SetGenericParameterAttributes(
            GenericParameterAttributes.DefaultConstructorConstraint |
            GenericParameterAttributes.ReferenceTypeConstraint);

        // A type that is substituted for the second type
        // parameter must implement IExampleA and IExampleB, and
        // inherit from the trivial test class ExampleBase. The
        // interface constraints are specified as an array
        // containing the interface types.
        TSecond.SetBaseTypeConstraint(baseType);
        Type[] interfaceTypes = {interfaceA, interfaceB};
        TSecond.SetInterfaceConstraints(interfaceTypes);

        // The following code adds a private field named ExampleField,
        // of type TFirst.
        FieldBuilder exField =
            myType.DefineField("ExampleField", TFirst,
                FieldAttributes.Private);

        // Define a static method that takes an array of TFirst and
        // returns a List<TFirst> containing all the elements of
        // the array. To define this method it is necessary to create
        // the type List<TFirst> by calling MakeGenericType on the
        // generic type definition, List<T>. (The T is omitted with
        // the typeof operator when you get the generic type
        // definition.) The parameter type is created by using the
        // MakeArrayType method.
        //
        Type listOf = typeof(List<>);
        Type listOfTFirst = listOf.MakeGenericType(TFirst);
        Type[] mParamTypes = {TFirst.MakeArrayType()};

        MethodBuilder exMethod =
            myType.DefineMethod("ExampleMethod",
                MethodAttributes.Public | MethodAttributes.Static,
                listOfTFirst,
                mParamTypes);

        // Emit the method body.
        // The method body consists of just three opcodes, to load
        // the input array onto the execution stack, to call the
        // List<TFirst> constructor that takes IEnumerable<TFirst>,
        // which does all the work of putting the input elements into
        // the list, and to return, leaving the list on the stack. The
        // hard work is getting the constructor.
        //
        // The GetConstructor method is not supported on a
        // GenericTypeParameterBuilder, so it is not possible to get
        // the constructor of List<TFirst> directly. There are two
        // steps, first getting the constructor of List<T> and then
        // calling a method that converts it to the corresponding
        // constructor of List<TFirst>.
        //
        // The constructor needed here is the one that takes an
        // IEnumerable<T>. Note, however, that this is not the
        // generic type definition of IEnumerable<T>; instead, the
        // T from List<T> must be substituted for the T of
        // IEnumerable<T>. (This seems confusing only because both
        // types have type parameters named T. That is why this example
        // uses the somewhat silly names TFirst and TSecond.) To get
        // the type of the constructor argument, take the generic
        // type definition IEnumerable<T> (expressed as
        // IEnumerable<> when you use the typeof operator) and
        // call MakeGenericType with the first generic type parameter
        // of List<T>. The constructor argument list must be passed
        // as an array, with just one argument in this case.
        //
        // Now it is possible to get the constructor of List<T>,
        // using GetConstructor on the generic type definition. To get
        // the constructor of List<TFirst>, pass List<TFirst> and
        // the constructor from List<T> to the static
        // TypeBuilder.GetConstructor method.
        //
        ILGenerator ilgen = exMethod.GetILGenerator();

        Type ienumOf = typeof(IEnumerable<>);
        Type TfromListOf = listOf.GetGenericArguments()[0];
        Type ienumOfT = ienumOf.MakeGenericType(TfromListOf);
        Type[] ctorArgs = {ienumOfT};

        ConstructorInfo ctorPrep = listOf.GetConstructor(ctorArgs);
        ConstructorInfo ctor =
            TypeBuilder.GetConstructor(listOfTFirst, ctorPrep);

        ilgen.Emit(OpCodes.Ldarg_0);
        ilgen.Emit(OpCodes.Newobj, ctor);
        ilgen.Emit(OpCodes.Ret);

        // Create the type and save the assembly.
        Type finished = myType.CreateType();
        myAssembly.Save(myAsmName.Name+".dll");

        // Invoke the method.
        // ExampleMethod is not generic, but the type it belongs to is
        // generic, so in order to get a MethodInfo that can be invoked
        // it is necessary to create a constructed type. The Example
        // class satisfies the constraints on TFirst, because it is a
        // reference type and has a default constructor. In order to
        // have a class that satisfies the constraints on TSecond,
        // this code example defines the ExampleDerived type. These
        // two types are passed to MakeGenericMethod to create the
        // constructed type.
        //
        Type[] typeArgs = {typeof(Example), typeof(ExampleDerived)};
        Type constructed = finished.MakeGenericType(typeArgs);
        MethodInfo mi = constructed.GetMethod("ExampleMethod");

        // Create an array of Example objects, as input to the generic
        // method. This array must be passed as the only element of an
        // array of arguments. The first argument of Invoke is
        // null, because ExampleMethod is static. Display the count
        // on the resulting List<Example>.
        //
        Example[] input = {new Example(), new Example()};
        object[] arguments = {input};

        List<Example> listX =
            (List<Example>) mi.Invoke(null, arguments);

        Console.WriteLine(
            "\nThere are {0} elements in the List<Example>.",
            listX.Count);

        DisplayGenericParameters(finished);
    }

    private static void DisplayGenericParameters(Type t)
    {
        if (!t.IsGenericType)
        {
            Console.WriteLine("Type '{0}' is not generic.");
            return;
        }
        if (!t.IsGenericTypeDefinition)
        {
            t = t.GetGenericTypeDefinition();
        }

        Type[] typeParameters = t.GetGenericArguments();
        Console.WriteLine("\nListing {0} type parameters for type '{1}'.",
            typeParameters.Length, t);

        foreach( Type tParam in typeParameters )
        {
            Console.WriteLine("\r\nType parameter {0}:", tParam.ToString());

            foreach( Type c in tParam.GetGenericParameterConstraints() )
            {
                if (c.IsInterface)
                {
                    Console.WriteLine("    Interface constraint: {0}", c);
                }
                else
                {
                    Console.WriteLine("    Base type constraint: {0}", c);
                }
            }

            ListConstraintAttributes(tParam);
        }
    }

    // List the constraint flags. The GenericParameterAttributes
    // enumeration contains two sets of attributes, variance and
    // constraints. For this example, only constraints are used.
    //
    private static void ListConstraintAttributes(Type t)
    {
        // Mask off the constraint flags.
        GenericParameterAttributes constraints =
            t.GenericParameterAttributes & GenericParameterAttributes.SpecialConstraintMask;

        if ((constraints & GenericParameterAttributes.ReferenceTypeConstraint)
            != GenericParameterAttributes.None)
        {
            Console.WriteLine("    ReferenceTypeConstraint");
        }

        if ((constraints & GenericParameterAttributes.NotNullableValueTypeConstraint)
            != GenericParameterAttributes.None)
        {
            Console.WriteLine("    NotNullableValueTypeConstraint");
        }

        if ((constraints & GenericParameterAttributes.DefaultConstructorConstraint)
            !=GenericParameterAttributes.None)
        {
            Console.WriteLine("    DefaultConstructorConstraint");
        }
    }
}

/* This code example produces the following output:

Type 'Sample' is generic: False
Type 'Sample' is generic: True

There are 2 elements in the List<Example>.

Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.

Type parameter TFirst:
    ReferenceTypeConstraint
    DefaultConstructorConstraint

Type parameter TSecond:
    Interface constraint: IExampleA
    Interface constraint: IExampleB
    Base type constraint: ExampleBase
 */
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Collections.Generic

' Define a trivial base class and two trivial interfaces 
' to use when demonstrating constraints.
'
Public Class ExampleBase
End Class

Public Interface IExampleA
End Interface

Public Interface IExampleB
End Interface

' Define a trivial type that can substitute for type parameter 
' TSecond.
'
Public Class ExampleDerived
    Inherits ExampleBase
    Implements IExampleA, IExampleB
End Class

Public Class Example
    Public Shared Sub Main()
        ' Define a dynamic assembly to contain the sample type. The
        ' assembly will not be run, but only saved to disk, so
        ' AssemblyBuilderAccess.Save is specified.
        '
        Dim myDomain As AppDomain = AppDomain.CurrentDomain
        Dim myAsmName As New AssemblyName("GenericEmitExample1")
        Dim myAssembly As AssemblyBuilder = myDomain.DefineDynamicAssembly( _
            myAsmName, _
            AssemblyBuilderAccess.RunAndSave)

        ' An assembly is made up of executable modules. For a single-
        ' module assembly, the module name and file name are the same 
        ' as the assembly name. 
        '
        Dim myModule As ModuleBuilder = myAssembly.DefineDynamicModule( _
            myAsmName.Name, _
            myAsmName.Name & ".dll")

        ' Get type objects for the base class trivial interfaces to
        ' be used as constraints.
        '
        Dim baseType As Type = GetType(ExampleBase)
        Dim interfaceA As Type = GetType(IExampleA)
        Dim interfaceB As Type = GetType(IExampleB)
                
        ' Define the sample type.
        '
        Dim myType As TypeBuilder = myModule.DefineType( _
            "Sample", _
            TypeAttributes.Public)

        Console.WriteLine("Type 'Sample' is generic: {0}", _
            myType.IsGenericType)

        ' Define type parameters for the type. Until you do this, 
        ' the type is not generic, as the preceding and following 
        ' WriteLine statements show. The type parameter names are
        ' specified as an array of strings. To make the code
        ' easier to read, each GenericTypeParameterBuilder is placed
        ' in a variable with the same name as the type parameter.
        ' 
        Dim typeParamNames() As String = {"TFirst", "TSecond"}
        Dim typeParams() As GenericTypeParameterBuilder = _
            myType.DefineGenericParameters(typeParamNames)

        Dim TFirst As GenericTypeParameterBuilder = typeParams(0)
        Dim TSecond As GenericTypeParameterBuilder = typeParams(1)

        Console.WriteLine("Type 'Sample' is generic: {0}", _
            myType.IsGenericType)

        ' Apply constraints to the type parameters.
        '
        ' A type that is substituted for the first parameter, TFirst,
        ' must be a reference type and must have a parameterless
        ' constructor.
        TFirst.SetGenericParameterAttributes( _
            GenericParameterAttributes.DefaultConstructorConstraint _
            Or GenericParameterAttributes.ReferenceTypeConstraint)

        ' A type that is substituted for the second type
        ' parameter must implement IExampleA and IExampleB, and
        ' inherit from the trivial test class ExampleBase. The
        ' interface constraints are specified as an array 
        ' containing the interface types.
        TSecond.SetBaseTypeConstraint(baseType)
        Dim interfaceTypes() As Type = {interfaceA, interfaceB}
        TSecond.SetInterfaceConstraints(interfaceTypes)

        ' The following code adds a private field named ExampleField,
        ' of type TFirst.
        Dim exField As FieldBuilder = _
            myType.DefineField("ExampleField", TFirst, _
                FieldAttributes.Private)

        ' Define a Shared method that takes an array of TFirst and 
        ' returns a List(Of TFirst) containing all the elements of 
        ' the array. To define this method it is necessary to create
        ' the type List(Of TFirst) by calling MakeGenericType on the
        ' generic type definition, List(Of T). (The T is omitted with
        ' the GetType operator when you get the generic type 
        ' definition.) The parameter type is created by using the
        ' MakeArrayType method. 
        '
        Dim listOf As Type = GetType(List(Of ))
        Dim listOfTFirst As Type = listOf.MakeGenericType(TFirst)
        Dim mParamTypes() As Type = { TFirst.MakeArrayType() }

        Dim exMethod As MethodBuilder = _
            myType.DefineMethod("ExampleMethod", _
                MethodAttributes.Public Or MethodAttributes.Static, _
                listOfTFirst, _
                mParamTypes)

        ' Emit the method body. 
        ' The method body consists of just three opcodes, to load 
        ' the input array onto the execution stack, to call the 
        ' List(Of TFirst) constructor that takes IEnumerable(Of TFirst),
        ' which does all the work of putting the input elements into
        ' the list, and to return, leaving the list on the stack. The
        ' hard work is getting the constructor.
        ' 
        ' The GetConstructor method is not supported on a 
        ' GenericTypeParameterBuilder, so it is not possible to get 
        ' the constructor of List(Of TFirst) directly. There are two
        ' steps, first getting the constructor of List(Of T) and then
        ' calling a method that converts it to the corresponding 
        ' constructor of List(Of TFirst).
        '
        ' The constructor needed here is the one that takes an
        ' IEnumerable(Of T). Note, however, that this is not the 
        ' generic type definition of IEnumerable(Of T); instead, the
        ' T from List(Of T) must be substituted for the T of 
        ' IEnumerable(Of T). (This seems confusing only because both
        ' types have type parameters named T. That is why this example
        ' uses the somewhat silly names TFirst and TSecond.) To get
        ' the type of the constructor argument, take the generic
        ' type definition IEnumerable(Of T) (expressed as 
        ' IEnumerable(Of ) when you use the GetType operator) and 
        ' call MakeGenericType with the first generic type parameter
        ' of List(Of T). The constructor argument list must be passed
        ' as an array, with just one argument in this case.
        ' 
        ' Now it is possible to get the constructor of List(Of T),
        ' using GetConstructor on the generic type definition. To get
        ' the constructor of List(Of TFirst), pass List(Of TFirst) and
        ' the constructor from List(Of T) to the static
        ' TypeBuilder.GetConstructor method.
        '
        Dim ilgen As ILGenerator = exMethod.GetILGenerator()
        
        Dim ienumOf As Type = GetType(IEnumerable(Of ))
        Dim listOfTParams() As Type = listOf.GetGenericArguments()
        Dim TfromListOf As Type = listOfTParams(0)
        Dim ienumOfT As Type = ienumOf.MakeGenericType(TfromListOf)
        Dim ctorArgs() As Type = { ienumOfT }

        Dim ctorPrep As ConstructorInfo = _
            listOf.GetConstructor(ctorArgs)
        Dim ctor As ConstructorInfo = _
            TypeBuilder.GetConstructor(listOfTFirst, ctorPrep)

        ilgen.Emit(OpCodes.Ldarg_0)
        ilgen.Emit(OpCodes.Newobj, ctor)
        ilgen.Emit(OpCodes.Ret)

        ' Create the type and save the assembly. 
        Dim finished As Type = myType.CreateType()
        myAssembly.Save(myAsmName.Name & ".dll")

        ' Invoke the method.
        ' ExampleMethod is not generic, but the type it belongs to is
        ' generic, so in order to get a MethodInfo that can be invoked
        ' it is necessary to create a constructed type. The Example 
        ' class satisfies the constraints on TFirst, because it is a 
        ' reference type and has a default constructor. In order to
        ' have a class that satisfies the constraints on TSecond, 
        ' this code example defines the ExampleDerived type. These
        ' two types are passed to MakeGenericMethod to create the
        ' constructed type.
        '
        Dim typeArgs() As Type = _
            { GetType(Example), GetType(ExampleDerived) }
        Dim constructed As Type = finished.MakeGenericType(typeArgs)
        Dim mi As MethodInfo = constructed.GetMethod("ExampleMethod")

        ' Create an array of Example objects, as input to the generic
        ' method. This array must be passed as the only element of an 
        ' array of arguments. The first argument of Invoke is 
        ' Nothing, because ExampleMethod is Shared. Display the count
        ' on the resulting List(Of Example).
        ' 
        Dim input() As Example = { New Example(), New Example() }
        Dim arguments() As Object = { input }

        Dim listX As List(Of Example) = mi.Invoke(Nothing, arguments)

        Console.WriteLine(vbLf & _
            "There are {0} elements in the List(Of Example).", _
            listX.Count _ 
        )

        DisplayGenericParameters(finished)
    End Sub

    Private Shared Sub DisplayGenericParameters(ByVal t As Type)

        If Not t.IsGenericType Then
            Console.WriteLine("Type '{0}' is not generic.")
            Return
        End If
        If Not t.IsGenericTypeDefinition Then _
            t = t.GetGenericTypeDefinition()

        Dim typeParameters() As Type = t.GetGenericArguments()
        Console.WriteLine(vbCrLf & _
            "Listing {0} type parameters for type '{1}'.", _
            typeParameters.Length, t)

        For Each tParam As Type In typeParameters

            Console.WriteLine(vbCrLf & "Type parameter {0}:", _
                tParam.ToString())

            For Each c As Type In tParam.GetGenericParameterConstraints()
                If c.IsInterface Then
                    Console.WriteLine("    Interface constraint: {0}", c)
                Else
                    Console.WriteLine("    Base type constraint: {0}", c)
                End If
            Next 

            ListConstraintAttributes(tParam)
        Next tParam
    End Sub

    ' List the constraint flags. The GenericParameterAttributes
    ' enumeration contains two sets of attributes, variance and
    ' constraints. For this example, only constraints are used.
    '
    Private Shared Sub ListConstraintAttributes(ByVal t As Type)

        ' Mask off the constraint flags. 
        Dim constraints As GenericParameterAttributes = _
            t.GenericParameterAttributes And _
            GenericParameterAttributes.SpecialConstraintMask

        If (constraints And GenericParameterAttributes.ReferenceTypeConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    ReferenceTypeConstraint")

        If (constraints And GenericParameterAttributes.NotNullableValueTypeConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    NotNullableValueTypeConstraint")

        If (constraints And GenericParameterAttributes.DefaultConstructorConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    DefaultConstructorConstraint")

    End Sub 

End Class

' This code example produces the following output:
'
'Type 'Sample' is generic: False
'Type 'Sample' is generic: True
'
'There are 2 elements in the List(Of Example).
'
'Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.
'
'Type parameter TFirst:
'    ReferenceTypeConstraint
'    DefaultConstructorConstraint
'
'Type parameter TSecond:
'    Interface constraint: IExampleA
'    Interface constraint: IExampleB
'    Base type constraint: ExampleBase

Remarques

Vous pouvez obtenir un tableau d’objets GenericTypeParameterBuilder à l’aide de la méthode TypeBuilder.DefineGenericParameters pour ajouter des paramètres de type à un type dynamique, ce qui en fait un type générique ou à l’aide de la méthode MethodBuilder.DefineGenericParameters pour ajouter des paramètres de type à une méthode dynamique. Utilisez les objets GenericTypeParameterBuilder pour ajouter des contraintes aux paramètres de type. Les contraintes sont de trois types :

  • La contrainte de type de base spécifie que tout type affecté au paramètre de type générique doit dériver d’un type de base particulier. Définissez cette contrainte à l’aide de la méthode SetBaseTypeConstraint.

  • Une contrainte d’interface spécifie que tout type affecté au paramètre de type générique doit implémenter une interface particulière. Définissez les contraintes d’interface à l’aide de la méthode SetInterfaceConstraints.

  • Les contraintes spéciales spécifient que tout type affecté au paramètre de type générique doit avoir un constructeur sans paramètre, doit être un type référence ou doit être un type valeur. Définissez les contraintes spéciales pour un paramètre de type à l’aide de la méthode SetGenericParameterAttributes.

Les contraintes d’interface et les contraintes spéciales ne peuvent pas être récupérées à l’aide de méthodes de la classe GenericTypeParameterBuilder. Une fois que vous avez créé le type générique qui contient les paramètres de type, vous pouvez utiliser son objet Type pour refléter les contraintes. Utilisez la méthode Type.GetGenericArguments pour obtenir les paramètres de type, et pour chaque paramètre de type, utilisez la méthode Type.GetGenericParameterConstraints pour obtenir les contraintes de type de base et les contraintes d’interface, ainsi que la propriété Type.GenericParameterAttributes pour obtenir les contraintes spéciales.

Constructeurs

GenericTypeParameterBuilder()

Initialise une nouvelle instance de GenericTypeParameterBuilder classe.

Propriétés

Assembly

Obtient un objet Assembly représentant l’assembly dynamique qui contient la définition de type générique auquel appartient le paramètre de type actuel.

AssemblyQualifiedName

Obtient null dans tous les cas.

Attributes

Obtient les attributs associés au Type.

Attributes

Obtient les attributs associés au Type.

(Hérité de Type)
Attributes

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
BaseType

Obtient la contrainte de type de base du paramètre de type générique actuel.

ContainsGenericParameters

Obtient true dans tous les cas.

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 des membres définis 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 une collection des propriétés définies par le type actuel.

(Hérité de TypeInfo)
DeclaringMethod

Obtient une MethodInfo qui représente la méthode déclarante, si le GenericTypeParameterBuilder actuel représente un paramètre de type d’une méthode générique.

DeclaringType

Obtient la définition de type générique ou la définition de méthode générique à laquelle appartient le paramètre de type générique.

FullName

Obtient null dans tous les cas.

GenericParameterAttributes

Obtient une combinaison d’indicateurs GenericParameterAttributes qui décrivent 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 les contraintes spéciales du paramètre de type générique actuel.

(Hérité de Type)
GenericParameterPosition

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

GenericTypeArguments

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GenericTypeParameters

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

(Hérité de TypeInfo)
GUID

Non pris en charge pour les paramètres de type générique incomplets.

HasElementType

Obtient une valeur indiquant si le Type actuel englobe ou fait référence à un autre type ; autrement dit, si le Type actuel est un tableau, un pointeur ou est passé par référence.

(Hérité de Type)
HasElementType

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
ImplementedInterfaces

Obtient une collection des interfaces implémentées 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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsAnsiClass

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

(Hérité de Type)
IsAnsiClass

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsAutoClass

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

(Hérité de Type)
IsAutoClass

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsAutoLayout

Obtient une valeur indiquant si les champs du type actuel sont disposés automatiquement par le Common Language Runtime.

(Hérité de Type)
IsAutoLayout

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsByRef

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

(Hérité de Type)
IsByRef

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 l'Type est une classe ou un délégué ; autrement dit, pas un type valeur ou une interface.

(Hérité de Type)
IsClass

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsCollectible

Obtient une valeur qui indique si cet objet MemberInfo fait partie d’un assembly détenu dans une AssemblyLoadContextcollectible.

(Hérité de MemberInfo)
IsCOMObject

Obtient une valeur indiquant si le Type est un objet COM.

(Hérité de Type)
IsCOMObject

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 le Type peut être hébergé dans un contexte.

(Hérité de Type)
IsEnum

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsExplicitLayout

Obtient une valeur indiquant si les champs du type actuel sont disposés à des décalages spécifiés explicitement.

(Hérité de Type)
IsExplicitLayout

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsFunctionPointer

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

(Hérité de Type)
IsGenericMethodParameter

Obtient une valeur qui indique 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 true dans tous les cas.

IsGenericType

Retourne false dans tous les cas.

IsGenericTypeDefinition

Obtient false dans tous les cas.

IsGenericTypeParameter

Obtient une valeur qui indique 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 indiquant si l'Type a un attribut ComImportAttribute appliqué, indiquant qu’il a été importé à partir d’une bibliothèque de types COM.

(Hérité de Type)
IsImport

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsInterface

Obtient une valeur indiquant si l'Type est une interface ; autrement dit, pas une classe ou un type valeur.

(Hérité de Type)
IsInterface

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsLayoutSequential

Obtient une valeur indiquant si les champs du type actuel sont disposés séquentiellement, dans l’ordre dans lequel ils ont été définis ou émis dans les métadonnées.

(Hérité de Type)
IsLayoutSequential

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsMarshalByRef

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

(Hérité de Type)
IsMarshalByRef

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNestedAssembly

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

(Hérité de Type)
IsNestedAssembly

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNestedFamANDAssem

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

(Hérité de Type)
IsNestedFamANDAssem

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNestedFamily

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

(Hérité de Type)
IsNestedFamily

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNestedFamORAssem

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

(Hérité de Type)
IsNestedFamORAssem

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNestedPrivate

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

(Hérité de Type)
IsNestedPrivate

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsNotPublic

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

(Hérité de Type)
IsNotPublic

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsPointer

Obtient une valeur indiquant si le Type est un pointeur.

(Hérité de Type)
IsPointer

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsPrimitive

Obtient une valeur indiquant si la Type est l’un des types primitifs.

(Hérité de Type)
IsPrimitive

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsPublic

Obtient une valeur indiquant si la Type est déclarée publique.

(Hérité de Type)
IsPublic

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsSealed

Obtient une valeur indiquant si la Type est déclarée scellée.

(Hérité de Type)
IsSealed

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsSecurityCritical

Obtient une valeur qui indique si le type actuel est critique pour la sécurité ou la sécurité au niveau de confiance actuel, et peut donc effectuer des opérations critiques.

(Hérité de Type)
IsSecuritySafeCritical

Obtient une valeur qui indique si le type actuel est critique pour la sécurité au niveau de confiance actuel ; autrement dit, qu’il puisse effectuer des opérations critiques et qu’il soit accessible par du code transparent.

(Hérité de Type)
IsSecurityTransparent

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

(Hérité de Type)
IsSerializable

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

IsSerializable
Obsolète.

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

(Hérité de Type)
IsSerializable

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 une gestion spéciale.

(Hérité de Type)
IsSpecialName

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsSZArray

Obtient une valeur qui indique si le type est un type de tableau qui ne peut représenter qu’un tableau unidimensionnel avec une limite inférieure zéro.

IsSZArray

Obtient une valeur qui indique si le type est un type de tableau qui ne peut représenter qu’un tableau unidimensionnel avec une limite inférieure zéro.

(Hérité de Type)
IsTypeDefinition

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

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 le Type.

(Hérité de Type)
IsUnicodeClass

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsUnmanagedFunctionPointer

Obtient une valeur qui indique si la Type actuelle 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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
IsVariableBoundArray

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

IsVariableBoundArray

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

(Hérité de Type)
IsVisible

Obtient une valeur indiquant si le Type est accessible par du code en dehors de l’assembly.

(Hérité de Type)
IsVisible

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
MemberType

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

(Hérité de Type)
MemberType

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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

Obtient le module dynamique qui contient le paramètre de type générique.

Name

Obtient le nom du paramètre de type générique.

Namespace

Obtient null dans tous les cas.

ReflectedType

Obtient l’objet Type utilisé pour obtenir le GenericTypeParameterBuilder.

ReflectedType

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

(Hérité de MemberInfo)
StructLayoutAttribute

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

(Hérité de Type)
StructLayoutAttribute

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
TypeHandle

Non pris en charge pour les paramètres de type générique incomplets.

TypeInitializer

Obtient l’initialiseur pour le type.

(Hérité de Type)
TypeInitializer

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
UnderlyingSystemType

Obtient le paramètre de type générique actuel.

UnderlyingSystemType

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)

Méthodes

AsType()

Retourne le type actuel en tant qu’objet Type.

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

Teste si l’objet donné est une instance de EventToken et est égale à l’instance actuelle.

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 Typespé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 la Typeactuelle.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetArrayRank()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetArrayRank()

Obtient le nombre de dimensions d’un tableau.

(Hérité de Type)
GetArrayRank()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 valeurs d’énumération au niveau du bit qui indiquent les attributs 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 valeurs d’énumération au niveau du bit qui indiquent les attributs 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 modificateurs spécifiés, à l’aide des contraintes de liaison spécifiées et de la convention d’appel spécifiée.

(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[])

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

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 et modificateurs d’argument spécifiés, à l’aide des contraintes de liaison spécifiées et de la convention d’appel spécifiée.

(Hérité de Type)
GetConstructors()

Retourne tous les constructeurs publics définis pour le Typeactuel.

(Hérité de Type)
GetConstructors()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetConstructors(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

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)

Non pris en charge pour les paramètres de type générique incomplets.

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é par Type.

(Hérité de MemberInfo)
GetCustomAttributesData()

Retourne 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)

Retourne 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)

Retourne 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)

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

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

Retourne 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 la DefaultMemberAttribute est définie.

(Hérité de Type)
GetDefaultMembers()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetElementType()

Lève une NotSupportedException dans tous les cas.

GetEnumName(Object)

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetEnumNames()

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

(Hérité de Type)
GetEnumNames()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetEnumUnderlyingType()

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

(Hérité de Type)
GetEnumUnderlyingType()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetEnumValues()

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

(Hérité de Type)
GetEnumValues()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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, BindingFlags)

Non pris en charge pour les paramètres de type générique incomplets.

GetEvent(String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetEvents()

Non pris en charge pour les paramètres de type générique incomplets.

GetEvents()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetEvents(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetField(String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetFields()

Retourne tous les champs publics de la Typeactuelle.

(Hérité de Type)
GetFields()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetFields(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetFunctionPointerCallingConventions()

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

(Hérité de Type)
GetFunctionPointerParameterTypes()

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

(Hérité de Type)
GetFunctionPointerReturnType()

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

(Hérité de Type)
GetGenericArguments()

Non valide pour les paramètres de type générique.

GetGenericArguments()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetGenericParameterConstraints()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetGenericParameterConstraints()

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

(Hérité de Type)
GetGenericParameterConstraints()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetGenericTypeDefinition()

Non valide pour les paramètres de type générique.

GetHashCode()

Retourne un code de hachage entier 32 bits pour l’instance actuelle.

GetInterface(String, Boolean)

Non pris en charge pour les paramètres de type générique incomplets.

GetInterface(String, Boolean)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetInterfaces()

Non pris en charge pour les paramètres de type générique incomplets.

GetInterfaces()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetMember(String, MemberTypes, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetMembers()

Retourne tous les membres publics du Typeactuel.

(Hérité de Type)
GetMembers()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetMembers(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Recherche le MemberInfo sur le Type actuel qui correspond au MemberInfospécifié.

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

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

(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, 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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
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, à l’aide des contraintes de liaison spécifiées et de la convention d’appel spécifiée.

(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[])

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

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

Recherche la méthode publique 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.

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

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

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

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 spécifiées et de la convention d’appel spécifiée.

(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 génériques, aux types d’arguments et aux modificateurs spécifiés, à l’aide des contraintes de liaison spécifiées et de la convention d’appel spécifiée.

(Hérité de Type)
GetMethods()

Retourne toutes les méthodes publiques du Typeactuel.

(Hérité de Type)
GetMethods()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetMethods(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetNestedType(String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetNestedTypes()

Retourne les types publics imbriqués dans le Typeactuel.

(Hérité de Type)
GetNestedTypes()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetNestedTypes(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(Hérité de TypeInfo)
GetOptionalCustomModifiers()

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

(Hérité de Type)
GetProperties()

Retourne toutes les propriétés publiques de la Typeactuelle.

(Hérité de Type)
GetProperties()

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

GetProperties(BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 modificateurs spécifiés, à l’aide des contraintes de liaison spécifiées.

(Hérité de Type)
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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

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

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Recherche la propriété publique avec le nom et le type de retour spécifiés.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Non pris en charge pour les paramètres de type générique incomplets.

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 et modificateurs d’argument spécifiés, à l’aide des contraintes de liaison spécifiées.

(Hérité de Type)
GetRequiredCustomModifiers()

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

(Hérité de Type)
GetType()

Obtient le Typeactuel .

(Hérité de Type)
GetType()

Découvre les attributs d’un membre et fournit l’accès aux métadonnées de membre.

(Hérité de MemberInfo)
GetTypeCodeImpl()

Retourne le code de 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 fait référence à un autre type ; autrement dit, si le Type actuel est un tableau, un pointeur ou 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 fait référence à un autre type ; autrement dit, si le Type actuel est un tableau, un pointeur ou est passé par référence.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Appelle le membre spécifié, en utilisant les contraintes de liaison spécifiées et en correspondant à la liste et à la culture d’arguments spécifiées.

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

Non pris en charge pour les paramètres de type générique incomplets.

InvokeMember(String, BindingFlags, Binder, Object, Object[])

Appelle le membre spécifié, en utilisant les contraintes de liaison spécifiées et en correspondant à la liste d’arguments spécifiée.

(Hérité de Type)
IsArrayImpl()

En cas de substitution dans une classe dérivée, implémente la propriété IsArray et détermine si le 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 le Type est un tableau.

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

Lève une exception NotSupportedException dans tous les cas.

IsAssignableFrom(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Lève une exception NotSupportedException dans tous les cas.

IsAssignableTo(Type)

Détermine si le type actuel peut être affecté à une variable du targetTypespé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 l'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 l'Type est un objet COM.

(Hérité de Type)
IsContextfulImpl()

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

(Hérité de Type)
IsDefined(Type, Boolean)

Non pris en charge pour les paramètres de type générique incomplets.

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 d’énumération actuel.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Détermine si deux types COM ont la même identité et sont éligibles à l’équivalence de type.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Détermine si l’objet spécifié est une instance du Typeactuel .

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

(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 l'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 l'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 l'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 l'Type est l’un des types primitifs.

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

Non pris en charge pour les paramètres de type générique incomplets.

IsValueTypeImpl()

Implémente la propriété IsValueType et détermine si l'Type est un type valeur ; c’est-à-dire qu’il ne s’agit pas d’une classe ou d’une interface.

IsValueTypeImpl()

Implémente la propriété IsValueType et détermine si l'Type est un type valeur ; c’est-à-dire qu’il ne s’agit pas d’une classe ou d’une interface.

(Hérité de Type)
MakeArrayType()

Retourne le type d’un tableau unidimensionnel dont le type d’élément est le paramètre de type générique.

MakeArrayType(Int32)

Retourne le type d’un tableau dont le type d’élément est le paramètre de type générique, avec le nombre spécifié de dimensions.

MakeByRefType()

Retourne un objet Type qui représente le paramètre de type générique actuel lorsqu’il est passé en tant que paramètre de référence.

MakeGenericType(Type[])

Non valide pour les paramètres de type générique incomplets.

MakePointerType()

Retourne un objet Type qui représente un pointeur vers le paramètre de type générique actuel.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

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

Définit le type de base qu’un type doit hériter pour être remplacé par le paramètre de type.

SetBaseTypeConstraintCore(Type)

En cas de substitution dans une classe dérivée, définit le type de base qu’un type doit hériter pour être remplacé par le paramètre de type.

SetCustomAttribute(ConstructorInfo, Byte[])

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

SetCustomAttribute(CustomAttributeBuilder)

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

SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>)

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

SetGenericParameterAttributes(GenericParameterAttributes)

Définit les caractéristiques de variance et les contraintes spéciales du paramètre générique, telles que la contrainte de constructeur sans paramètre.

SetGenericParameterAttributesCore(GenericParameterAttributes)

En cas de substitution dans une classe dérivée, définit les caractéristiques de variance et les contraintes spéciales du paramètre générique, telles que la contrainte de constructeur sans paramètre.

SetInterfaceConstraints(Type[])

Définit les interfaces qu’un type doit implémenter afin d’être remplacées par le paramètre de type.

SetInterfaceConstraintsCore(Type[])

En cas de substitution dans une classe dérivée, définit les interfaces qu’un type doit implémenter afin d’être substituées au paramètre de type.

ToString()

Retourne une représentation sous forme de chaîne du paramètre de type générique actuel.

Implémentations d’interfaces explicites

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

Mappe un ensemble de noms à un ensemble correspondant d’identificateurs de répartition.

(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 d’un objet, qui peuvent ensuite être utilisées 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 fournies 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 méthodes exposées par un objet.

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

Mappe un ensemble de noms à un ensemble correspondant d’identificateurs de répartition.

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

Récupère les informations de type d’un objet, qui peuvent ensuite être utilisées 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 fournies 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 méthodes exposées par un objet.

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

Retourne un tableau de tous les attributs personnalisés définis sur ce membre, à l’exclusion des attributs nommés ou d’un tableau vide s’il n’existe 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’existe 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, Boolean)

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

GetCustomAttribute(MemberInfo, Type)

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

GetCustomAttribute<T>(MemberInfo, Boolean)

Récupère un attribut personnalisé d’un type spécifié 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é appliqué à un membre spécifié.

GetCustomAttributes(MemberInfo, Boolean)

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

GetCustomAttributes(MemberInfo, Type, Boolean)

Récupère 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(MemberInfo, Type)

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

GetCustomAttributes(MemberInfo)

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

GetCustomAttributes<T>(MemberInfo, Boolean)

Récupère 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)

Récupère une collection d’attributs personnalisés d’un type spécifié qui 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.

IsDefined(MemberInfo, Type)

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

GetTypeInfo(Type)

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

GetMetadataToken(MemberInfo)

Obtient un jeton de métadonnées pour le membre donné, le cas échéant.

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 champs définis sur un type spécifié.

GetRuntimeInterfaceMap(TypeInfo, Type)

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

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 propriétés 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 paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetConstructors(Type, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetConstructors(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetDefaultMembers(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetEvent(Type, String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetEvent(Type, String)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetEvents(Type, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetField(Type, String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetField(Type, String)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetFields(Type, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetFields(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetGenericArguments(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetMember(Type, String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetMethod(Type, String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetMethod(Type, String, Type[])

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetMethods(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetNestedType(Type, String, BindingFlags)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetProperties(Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

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

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

GetProperty(Type, String, Type)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

IsInstanceOfType(Type, Object)

Définit et crée des paramètres de type générique pour les types et méthodes génériques définis dynamiquement. Cette classe ne peut pas être héritée.

S’applique à

Voir aussi