GenericTypeParameterBuilder Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- Héritage
- Héritage
- 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 en utilisant la TypeBuilder.DefineGenericParameters méthode pour ajouter des paramètres de type à un type dynamique, ce qui en fait un type générique, ou en utilisant la MethodBuilder.DefineGenericParameters méthode pour ajouter des paramètres de type à une méthode dynamique. Utilisez les GenericTypeParameterBuilder objets 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 SetBaseTypeConstraint méthode .
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 SetInterfaceConstraints méthode .
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 d’un paramètre de type à l’aide de la SetGenericParameterAttributes méthode .
Les contraintes d’interface et les contraintes spéciales ne peuvent pas être récupérées à l’aide des méthodes de la GenericTypeParameterBuilder classe . Une fois que vous avez créé le type générique qui contient les paramètres de type, vous pouvez utiliser son Type objet pour refléter les contraintes. Utilisez la Type.GetGenericArguments méthode pour obtenir les paramètres de type et, pour chaque paramètre de type, utilisez la méthode pour obtenir la Type.GetGenericParameterConstraints contrainte de type de base et les contraintes d’interface, et la Type.GenericParameterAttributes propriété pour obtenir les contraintes spéciales.
Constructeurs
GenericTypeParameterBuilder() |
Initialise une nouvelle instance de la classe GenericTypeParameterBuilder. |
Propriétés
Assembly |
Obtient un Assembly objet représentant l’assembly dynamique qui contient la définition de type générique à laquelle le paramètre de type actuel appartient. |
AssemblyQualifiedName |
Obtient |
Attributes |
Obtient les attributs associés à Type. |
Attributes |
Obtient les attributs associés à 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 |
CustomAttributes |
Obtient une collection qui contient les attributs personnalisés de ce membre. (Hérité de MemberInfo) |
DeclaredConstructors |
Obtient une collection des constructeurs déclarés par le type actuel. (Hérité de TypeInfo) |
DeclaredEvents |
Obtient une collection des événements définis par le type actuel. (Hérité de TypeInfo) |
DeclaredFields |
Obtient une collection des champs définis par le type actuel. (Hérité de TypeInfo) |
DeclaredMembers |
Obtient une collection du membre défini par le type actuel. (Hérité de TypeInfo) |
DeclaredMethods |
Obtient une collection des méthodes définies par le type actuel. (Hérité de TypeInfo) |
DeclaredNestedTypes |
Obtient une collection des types imbriqués définis par le type actuel. (Hérité de TypeInfo) |
DeclaredProperties |
Obtient la collection des propriétés définies par le type actuel. (Hérité de TypeInfo) |
DeclaringMethod |
Obtient un MethodInfo représentant la méthode de déclaration, 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 |
GenericParameterAttributes |
Obtient une combinaison d'indicateurs GenericParameterAttributes qui décrivent la covariance et des contraintes spéciales du paramètre de type générique actuel. |
GenericParameterAttributes |
Obtient une combinaison d'indicateurs GenericParameterAttributes qui décrivent la covariance et des contraintes spéciales du paramètre de type générique actuel. (Hérité de Type) |
GenericParameterPosition |
Obtient la position du paramètre de type dans la liste des paramètres de type du type générique ou de la méthode qui a déclaré le paramètre. |
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ériques 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 se réfère à un autre type, c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence. (Hérité de Type) |
HasElementType |
Définit et crée des 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 d'interfaces implémentée par le type actuel. (Hérité de TypeInfo) |
IsAbstract |
Obtient une valeur indiquant si le Type est abstrait et doit être substitué. (Hérité de Type) |
IsAbstract |
Définit et crée des 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 |
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 |
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 qui indique si les champs du type actuel sont placés automatiquement par le Common Language Runtime. (Hérité de Type) |
IsAutoLayout |
Définit et crée des 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 Type est passé 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 le Type est une classe ou un délégué, c'est-à-dire ni un type valeur ni une interface. (Hérité de Type) |
IsClass |
Définit et crée des 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 contenu dans un AssemblyLoadContext pouvant être collecté. (Hérité de MemberInfo) |
IsCOMObject |
Obtient une valeur indiquant si Type est un objet COM. (Hérité de Type) |
IsCOMObject |
Définit et crée des 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 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 qui indique si les champs du type actuel sont placés aux offsets explicitement spécifiés. (Hérité de Type) |
IsExplicitLayout |
Définit et crée des 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 actuel Type est un pointeur de fonction. (Hérité de Type) |
IsGenericMethodParameter |
Obtient une valeur indiquant si le Type actuel représente un paramètre de type dans la définition d’une méthode générique. (Hérité de Type) |
IsGenericParameter |
Obtient |
IsGenericType |
Retourne |
IsGenericTypeDefinition |
Obtient |
IsGenericTypeParameter |
Obtient une valeur indiquant si le Type actuel représente un paramètre de type dans la définition d’un type générique. (Hérité de Type) |
IsImport |
Obtient une valeur qui indique si le Type a un attribut appliqué ComImportAttribute, indiquant qu'il a été importé d'une bibliothèque de types COM. (Hérité de Type) |
IsImport |
Définit et crée des 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 le Type est une interface, c'est-à-dire ni une classe ni un type valeur. (Hérité de Type) |
IsInterface |
Définit et crée des 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 qui indique si les champs du type actuel sont placés séquentiellement, en respectant l'ordre dans lequel ils ont été définis ou émis aux métadonnées. (Hérité de Type) |
IsLayoutSequential |
Définit et crée des 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 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 le Type est imbriqué 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 le Type est imbriqué et visible uniquement par rapport aux classes qui appartiennent à la fois à sa propre famille et à son propre assembly. (Hérité de Type) |
IsNestedFamANDAssem |
Définit et crée des 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 le Type est imbriqué 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 le Type est imbriqué et visible uniquement par rapport aux classes qui appartiennent à sa propre famille ou à son propre assembly. (Hérité de Type) |
IsNestedFamORAssem |
Définit et crée des 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 le Type est imbriqué et déclaré privé. (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 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 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 le 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 Type est déclaré public. (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 Type est déclaré sealed. (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 de sécurité (security-critical) ou critique sécurisé (security-safe-critical) au niveau de confiance actuel et peut donc exécuter des opérations critiques. (Hérité de Type) |
IsSecuritySafeCritical |
Obtient une valeur qui indique si le type actuel est critique sécurisé au niveau de confiance actuel, autrement dit s'il peut exécuter des opérations critiques et être accessible par du code transparent. (Hérité de Type) |
IsSecurityTransparent |
Obtient une valeur qui indique si le type actuel est transparent au niveau de confiance actuel et ne peut donc pas exécuter d'opérations critiques. (Hérité de Type) |
IsSerializable |
Définit et crée des 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 est Type 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 un traitement spécial. (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 tableau qui peut représenter uniquement un tableau unidimensionnel avec une limite inférieure à zéro. |
IsSZArray |
Obtient une valeur qui indique si le type est un type tableau qui peut représenter uniquement un tableau unidimensionnel avec une limite inférieure à zéro. (Hérité de Type) |
IsTypeDefinition |
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 |
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 le actuel Type est un pointeur de fonction non managé. (Hérité de Type) |
IsValueType |
Obtient une valeur indiquant si le Type est un type valeur. (Hérité de Type) |
IsValueType |
Définit et crée des 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 tableau qui peut représenter uniquement un tableau multidimensionnel ou un tableau avec une limite inférieure arbitraire. (Hérité de Type) |
IsVisible |
Obtient une valeur qui indique si Type est accessible par code à l'extérieur de l'assembly. (Hérité de Type) |
IsVisible |
Définit et crée des 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 qui indique 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 |
ReflectedType |
Obtient l’objet Type qui a été utilisé pour obtenir le GenericTypeParameterBuilder. |
ReflectedType |
Obtient l'objet classe utilisé pour obtenir cette instance de |
StructLayoutAttribute |
Obtient un 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 du 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 sous forme d'objet Type. (Hérité de TypeInfo) |
Equals(Object) |
Teste si l’objet donné est une instance de |
Equals(Type) |
Détermine si le type de système sous-jacent du Type actuel est identique au type de système sous-jacent du Type spécifié. (Hérité de Type) |
FindInterfaces(TypeFilter, Object) |
Retourne un tableau d'objets Type représentant une liste filtrée d'interfaces implémentées ou héritées par le Type actuel. (Hérité de Type) |
FindInterfaces(TypeFilter, Object) |
Définit et crée des 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 du 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 dans 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 bits de valeurs d’énumération qui indique les attributs qui sont associés au Type. |
GetAttributeFlagsImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété Attributes et obtient une combinaison de bits de valeurs d’énumération qui indique les attributs qui sont associés au Type. (Hérité de Type) |
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Recherche un constructeur dont les paramètres correspondent aux types d’arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d’appel indiquées. (Hérité de Type) |
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[]) |
Recherche un constructeur dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés, à l’aide des contraintes de liaison spécifiées. (Hérité de Type) |
GetConstructor(BindingFlags, Type[]) |
Recherche un constructeur dont les paramètres correspondent aux types d’arguments spécifiés, à l’aide des contraintes de liaison spécifiées. (Hérité de Type) |
GetConstructor(Type[]) |
Recherche un constructeur d'instance public dont les paramètres correspondent aux types contenus dans le tableau spécifié. (Hérité de Type) |
GetConstructor(Type[]) |
Définit et crée des 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 d’arguments et modificateurs spécifiés, à l’aide des contraintes de liaison et de la convention d’appel spécifiées. (Hérité de Type) |
GetConstructors() |
Retourne tous les constructeurs publics définis pour le Type actuel. (Hérité de Type) |
GetConstructors() |
Définit et crée des 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és par Type. (Hérité de MemberInfo) |
GetCustomAttributesData() |
Renvoie une liste d’objets CustomAttributeData représentant des données sur les attributs qui ont été appliqués au membre cible. (Hérité de MemberInfo) |
GetDeclaredEvent(String) |
Renvoie un objet qui représente l’événement spécifié déclaré par le type actuel. (Hérité de TypeInfo) |
GetDeclaredField(String) |
Retourne un objet qui représente le champ spécifié déclaré par le type actuel. (Hérité de TypeInfo) |
GetDeclaredMethod(String) |
Renvoie un objet qui représente la méthode spécifiée déclarée par le type actuel. (Hérité de TypeInfo) |
GetDeclaredMethods(String) |
Retourne une collection qui contient toutes les méthodes déclarées sur le type actuel qui correspondent au nom spécifié. (Hérité de TypeInfo) |
GetDeclaredNestedType(String) |
Renvoie un objet qui représente le type imbriqué spécifié déclaré par le type actuel. (Hérité de TypeInfo) |
GetDeclaredProperty(String) |
Renvoie un objet qui représente la propriété spécifiée déclarée par le type actuel. (Hérité de TypeInfo) |
GetDefaultMembers() |
Recherche les membres définis pour le Type actuel dont le DefaultMemberAttribute est défini. (Hérité de Type) |
GetDefaultMembers() |
Définit et crée des 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 exception NotSupportedException dans tous les cas. |
GetEnumName(Object) |
Retourne le nom de la constante qui a la valeur spécifiée, pour le type énumération actuel. (Hérité de Type) |
GetEnumName(Object) |
Définit et crée des 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 é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 é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 é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) |
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) |
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) |
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) |
Recherche le champ public portant 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) |
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) |
GetFields() |
Retourne tous les champs publics du Type actuel. (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 Typede fonction actuel . (Hérité de Type) |
GetFunctionPointerParameterTypes() |
En cas de substitution dans une classe dérivée, retourne les types de paramètres du pointeur Typede fonction actuel . (Hérité de Type) |
GetFunctionPointerReturnType() |
En cas de substitution dans une classe dérivée, retourne le type de retour du pointeur Typede fonction actuel . (Hérité de Type) |
GetGenericArguments() |
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 qui s'exercent 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) |
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) |
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) |
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) |
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) |
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) |
GetMembers() |
Retourne tous les membres publics du Type actuel. (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 actif Type qui correspond au spécifié MemberInfo. (Hérité de Type) |
GetMethod(String) |
Recherche la méthode publique avec le nom spécifié. (Hérité de Type) |
GetMethod(String) |
Définit et crée des 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, 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, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d'appel indiquées. (Hérité de Type) |
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]) |
Recherche la méthode spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés, à l'aide des contraintes de liaison spécifiées. (Hérité de Type) |
GetMethod(String, BindingFlags, Type[]) |
Recherche la méthode spécifiée dont les paramètres correspondent aux types d’arguments spécifiés, à l’aide des contraintes de liaison spécifiées. (Hérité de Type) |
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres génériques, aux types d'arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison et la convention d'appel indiquées. (Hérité de Type) |
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[]) |
Recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres génériques, aux types d'arguments et aux modificateurs spécifiés, à l'aide des contraintes de liaison spécifiées. (Hérité de Type) |
GetMethod(String, Int32, BindingFlags, Type[]) |
Définit et crée des 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 Type) |
GetMethod(String, Int32, Type[]) |
Recherche la méthode publique spécifiée dont les paramètres correspondent au nombre d’arguments génériques et aux types d’arguments spécifiés. (Hérité de Type) |
GetMethod(String, Int32, Type[], ParameterModifier[]) |
Recherche la méthode publique spécifiée dont les paramètres correspondent au nombre d’arguments génériques, aux modificateurs et aux types d’arguments spécifiés. (Hérité de Type) |
GetMethod(String, Type[]) |
Recherche la méthode publique spécifiée dont les paramètres correspondent aux types d'arguments spécifiés. (Hérité de Type) |
GetMethod(String, Type[]) |
Définit et crée des 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[], ParameterModifier[]) |
Recherche la méthode publique spécifiée dont les paramètres correspondent aux types d’arguments et modificateurs spécifiés. (Hérité de Type) |
GetMethod(String, Type[], ParameterModifier[]) |
Définit et crée des 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 et de la convention d'appel spécifiées. (Hérité de Type) |
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
En cas de substitution dans une classe dérivée, recherche la méthode spécifiée dont les paramètres correspondent au nombre de paramètres, aux types d'arguments et aux modificateurs spécifiés, à l'aide des contraintes de liaison et de la convention d'appel spécifiées. (Hérité de Type) |
GetMethods() |
Retourne toutes les méthodes publiques du Type actuel. (Hérité de Type) |
GetMethods() |
Définit et crée des 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) |
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) |
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) |
GetNestedTypes() |
Retourne les types publics imbriqués dans le Type actuel. (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 actuel Type. (Hérité de Type) |
GetProperties() |
Retourne toutes les propriétés publiques du Type actuel. (Hérité de Type) |
GetProperties() |
Définit et crée des 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) |
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) |
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, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
Recherche la propriété spécifiée dont les paramètres correspondent aux types d’arguments et aux modificateurs spécifiés, en utilisant les contraintes de liaison indiquées. (Hérité de Type) |
GetProperty(String, Type) |
Recherche la propriété publique à l'aide du nom et du type de retour spécifiés. (Hérité de Type) |
GetProperty(String, Type) |
Définit et crée des 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, Type[], ParameterModifier[]) |
Recherche la propriété publique spécifiée dont les paramètres correspondent aux types d'arguments et modificateurs spécifiés. (Hérité de Type) |
GetProperty(String, Type, Type[], ParameterModifier[]) |
Définit et crée des 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) |
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 d'arguments et modificateurs spécifiés, en utilisant les contraintes de liaison indiquées. (Hérité de Type) |
GetRequiredCustomModifiers() |
En cas de substitution dans une classe dérivée, retourne les modificateurs personnalisés requis du actuel Type. (Hérité de Type) |
GetType() |
Obtient le Type actuel. (Hérité de Type) |
GetType() |
Identifie les attributs d’un membre et donne accès à ses métadonnées. (Hérité de MemberInfo) |
GetTypeCodeImpl() |
Retourne le code du type sous-jacent de cette instance Type. (Hérité de Type) |
HasElementTypeImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété HasElementType et détermine si le Type actuel englobe ou se réfère à un autre type ; c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence. |
HasElementTypeImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété HasElementType et détermine si le Type actuel englobe ou se réfère à un autre type ; c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence. (Hérité de Type) |
HasSameMetadataDefinitionAs(MemberInfo) |
Définit et crée des 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[]) |
Appelle le membre défini, à l'aide des contraintes de liaison spécifiées et correspondant à la liste d'arguments spécifiée. (Hérité de Type) |
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo) |
Appelle le membre spécifié, à l'aide des contraintes de liaison spécifiées et correspondant à la liste d'arguments et à la culture spécifiées. (Hérité de Type) |
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) |
Non pris en charge pour les paramètres de type générique incomplets. |
IsArrayImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsArray et détermine si Type est un tableau. |
IsArrayImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsArray et détermine si Type est un tableau. (Hérité de Type) |
IsAssignableFrom(Type) |
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 un type actuel peut être affecté à une variable du type |
IsByRefImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsByRef et détermine si le Type est passé par référence. |
IsByRefImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsByRef et détermine si le Type est passé par référence. (Hérité de Type) |
IsCOMObjectImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsCOMObject et détermine si le Type est un objet COM. |
IsCOMObjectImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsCOMObject et détermine si le Type est un objet COM. (Hérité de Type) |
IsContextfulImpl() |
Implémente la propriété IsContextful et détermine si Type peut être hébergé dans un contexte. (Hérité de Type) |
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 é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 prennent en charge 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 Type actuel. (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 le Type est un pointeur. |
IsPointerImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsPointer et détermine si le Type est un pointeur. (Hérité de Type) |
IsPrimitiveImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsPrimitive et détermine si Type est l'un des types primitifs. |
IsPrimitiveImpl() |
En cas de substitution dans une classe dérivée, implémente la propriété IsPrimitive et détermine si Type est l'un des types primitifs. (Hérité de Type) |
IsSubclassOf(Type) |
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 le Type est un type valeur, c'est-à-dire ni une classe ni une interface. |
IsValueTypeImpl() |
Implémente la propriété IsValueType et détermine si le Type est un type valeur, c'est-à-dire ni une classe ni une interface. (Hérité de Type) |
MakeArrayType() |
Retourne 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 des éléments correspond au 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 quand il est passé comme 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 Object actuel. (Hérité de Object) |
SetBaseTypeConstraint(Type) |
Définit le type de base un type doit hériter afin d’être substitué au 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’attribut personnalisé spécifié. |
SetCustomAttribute(CustomAttributeBuilder) |
Définit un attribut personnalisé à l’aide d’un générateur d’attributs personnalisés. |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
En cas de substitution dans une classe dérivée, définit un attribut personnalisé sur cet assembly. |
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 pour être substitué au 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 pour pouvoir remplacer le 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 jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de MemberInfo) |
_MemberInfo.GetType() |
Obtient un objet Type représentant la classe MemberInfo. (Hérité de MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface. (Hérité de MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de MemberInfo) |
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Type) |
_Type.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface. (Hérité de Type) |
_Type.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Type) |
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Type) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Retourne un tableau de tous les attributs personnalisés définis sur ce membre, en dehors des attributs nommés, ou un tableau vide s’il n’y a aucun attribut personnalisé. (Hérité de MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Retourne un tableau d’attributs personnalisés définis sur ce membre, identifiés par type, ou un tableau vide s’il n’y a aucun attribut personnalisé de ce type. (Hérité de MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Indique si une ou plusieurs instances de |
IReflectableType.GetTypeInfo() |
Retourne une représentation du type actuel en tant qu'objet TypeInfo. (Hérité de TypeInfo) |
Méthodes d’extension
GetCustomAttribute(MemberInfo, Type) |
Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre. |
GetCustomAttribute<T>(MemberInfo) |
Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre. |
GetCustomAttributes(MemberInfo) |
Récupère une collection d'attributs personnalisés qui sont appliqués à un membre spécifié. |
GetCustomAttributes(MemberInfo, Boolean) |
Récupère une collection d'attributs personnalisés qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre. |
GetCustomAttributes(MemberInfo, Type) |
Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre. |
GetCustomAttributes<T>(MemberInfo) |
Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Extrait une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un membre spécifié, et inspecte éventuellement les ancêtres de ce membre. |
IsDefined(MemberInfo, Type) |
Indique si des attributs personnalisés d'un type spécifié sont appliqués à un membre spécifié. |
IsDefined(MemberInfo, Type, Boolean) |
Indique si les attributs personnalisés d'un type spécifié sont appliqués à un membre spécifié, et, éventuellement, appliqués à ses ancêtres. |
GetTypeInfo(Type) |
Retourne la représentation TypeInfo du type spécifié. |
GetMetadataToken(MemberInfo) |
Obtient un jeton de métadonnées pour le membre donné, s’il est disponible. |
HasMetadataToken(MemberInfo) |
Retourne une valeur qui indique si un jeton de métadonnées est disponible pour le membre spécifié. |
GetRuntimeEvent(Type, String) |
Récupère un objet qui représente l’événement spécifié. |
GetRuntimeEvents(Type) |
Récupère une collection qui représente tous les événements définis sur un type spécifié. |
GetRuntimeField(Type, String) |
Récupère un objet qui représente un champ spécifié. |
GetRuntimeFields(Type) |
Récupère une collection qui représente tous les événements définis sur un type spécifié. |
GetRuntimeInterfaceMap(TypeInfo, Type) |
Retourne un mappage d’interface pour le type et l’interface spécifiés. |
GetRuntimeMethod(Type, String, Type[]) |
Récupère un objet qui représente une méthode spécifiée. |
GetRuntimeMethods(Type) |
Récupère une collection qui représente toutes les méthodes définies sur un type spécifié. |
GetRuntimeProperties(Type) |
Récupère une collection qui représente toutes les méthodes définies sur un type spécifié. |
GetRuntimeProperty(Type, String) |
Récupère un objet qui représente une propriété spécifiée. |
GetConstructor(Type, Type[]) |
Définit et crée des 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. |
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. |
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. |
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. |
GetInterfaces(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) |
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. |
GetMembers(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. |
GetProperties(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. |
GetProperty(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. |
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. |
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. |
IsAssignableFrom(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. |
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. |