GenericTypeParameterBuilder Clase

Definición

Define y crea parámetros de tipo genérico para definidos métodos y tipos genéricos definidos dinámicamente.Defines and creates generic type parameters for dynamically defined generic types and methods. Esta clase no puede heredarse.This class cannot be inherited.

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
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : Type
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
public abstract 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
Herencia
GenericTypeParameterBuilder
Herencia
GenericTypeParameterBuilder
Herencia
GenericTypeParameterBuilder
Atributos

Ejemplos

En el ejemplo de código siguiente se crea un tipo genérico con dos parámetros de tipo y se guarda en el ensamblado GenericEmitExample1.dll.The following code example creates a generic type with two type parameters, and saves them in the assembly GenericEmitExample1.dll. Puede usar el Ildasm.exe (desensamblador de IL) para ver los tipos generados.You can use the Ildasm.exe (IL Disassembler) to view the generated types. Para obtener una explicación más detallada de los pasos implicados en la definición de un tipo genérico dinámico, vea Cómo: definir un tipo genérico con emisiónde la reflexión.For a more detailed explanation of the steps involved in defining a dynamic generic type, see 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

Comentarios

Puede obtener una matriz de GenericTypeParameterBuilder objetos mediante el TypeBuilder.DefineGenericParameters método para agregar parámetros de tipo a un tipo dinámico, lo que lo convierte en un tipo genérico o usando el MethodBuilder.DefineGenericParameters método para agregar parámetros de tipo a un método dinámico.You can get an array of GenericTypeParameterBuilder objects by using the TypeBuilder.DefineGenericParameters method to add type parameters to a dynamic type, thus making it a generic type, or by using the MethodBuilder.DefineGenericParameters method to add type parameters to a dynamic method. Utilice los GenericTypeParameterBuilder objetos para agregar restricciones a los parámetros de tipo.Use the GenericTypeParameterBuilder objects to add constraints to the type parameters. Las restricciones son de tres tipos:Constraints are of three kinds:

  • La restricción de tipo base especifica que cualquier tipo asignado al parámetro de tipo genérico debe derivar de un tipo base determinado.The base type constraint specifies that any type assigned to the generic type parameter must derive from a particular base type. Establezca esta restricción mediante el SetBaseTypeConstraint método.Set this constraint by using the SetBaseTypeConstraint method.

  • Una restricción de interfaz especifica que cualquier tipo asignado al parámetro de tipo genérico debe implementar una interfaz determinada.An interface constraint specifies that any type assigned to the generic type parameter must implement a particular interface. Establezca las restricciones de interfaz mediante el SetInterfaceConstraints método.Set the interface constraints by using the SetInterfaceConstraints method.

  • Las restricciones especiales especifican que cualquier tipo asignado al parámetro de tipo genérico debe tener un constructor sin parámetros, debe ser un tipo de referencia o debe ser un tipo de valor.Special constraints specify that any type assigned to the generic type parameter must have a parameterless constructor, must be a reference type, or must be a value type. Establezca las restricciones especiales para un parámetro de tipo mediante el SetGenericParameterAttributes método.Set the special constraints for a type parameter by using the SetGenericParameterAttributes method.

Las restricciones de interfaz y las restricciones especiales no se pueden recuperar mediante métodos de la GenericTypeParameterBuilder clase.Interface constraints and special constraints cannot be retrieved using methods of the GenericTypeParameterBuilder class. Una vez que haya creado el tipo genérico que contiene los parámetros de tipo, puede usar su Type objeto para reflejar las restricciones.Once you have created the generic type that contains the type parameters, you can use its Type object to reflect the constraints. Use el Type.GetGenericArguments método para obtener los parámetros de tipo y, para cada parámetro de tipo, use el Type.GetGenericParameterConstraints método para obtener la restricción de tipo base y las restricciones de interfaz, y la Type.GenericParameterAttributes propiedad para obtener las restricciones especiales.Use the Type.GetGenericArguments method to get the type parameters, and for each type parameter use the Type.GetGenericParameterConstraints method to get the base type constraint and interface constraints, and the Type.GenericParameterAttributes property to get the special constraints.

Constructores

GenericTypeParameterBuilder()

Propiedades

Assembly

Obtiene un objeto Assembly que representa el ensamblado dinámico que contiene la definición del tipo genérico al que pertenece el parámetro del tipo actual.Gets an Assembly object representing the dynamic assembly that contains the generic type definition the current type parameter belongs to.

AssemblyQualifiedName

Obtiene null en todos los casos.Gets null in all cases.

Attributes
Attributes

Obtiene los atributos asociados al objeto Type.Gets the attributes associated with the Type.

(Heredado de Type)
Attributes (Heredado de TypeInfo)
BaseType

Obtiene la restricción de tipo base del parámetro de tipo genérico actual.Gets the base type constraint of the current generic type parameter.

ContainsGenericParameters

Obtiene true en todos los casos.Gets true in all cases.

ContainsGenericParameters (Heredado de TypeInfo)
CustomAttributes

Obtiene una colección que contiene los atributos personalizados de este miembro.Gets a collection that contains this member's custom attributes.

(Heredado de MemberInfo)
DeclaredConstructors

Obtiene una colección de los constructores declarados por el tipo actual.Gets a collection of the constructors declared by the current type.

(Heredado de TypeInfo)
DeclaredEvents

Obtiene una colección de los eventos definidos por el tipo actual.Gets a collection of the events defined by the current type.

(Heredado de TypeInfo)
DeclaredFields

Obtiene una colección de los campos definidos por el tipo actual.Gets a collection of the fields defined by the current type.

(Heredado de TypeInfo)
DeclaredMembers

Obtiene una colección de los miembros definidos por el tipo actual.Gets a collection of the members defined by the current type.

(Heredado de TypeInfo)
DeclaredMethods

Obtiene una colección de los métodos definidos por el tipo actual.Gets a collection of the methods defined by the current type.

(Heredado de TypeInfo)
DeclaredNestedTypes

Obtiene una colección de los tipos anidados definidos por el tipo actual.Gets a collection of the nested types defined by the current type.

(Heredado de TypeInfo)
DeclaredProperties

Obtiene una colección de las propiedades definidas por el tipo actual.Gets a collection of the properties defined by the current type.

(Heredado de TypeInfo)
DeclaringMethod

Obtiene un objeto MethodInfo que representa el método declarativo si el objeto GenericTypeParameterBuilder actual representa un parámetro de tipo de un método genérico.Gets a MethodInfo that represents the declaring method, if the current GenericTypeParameterBuilder represents a type parameter of a generic method.

DeclaringMethod (Heredado de TypeInfo)
DeclaringType

Obtiene la definición de tipo genérico o la definición de método genérico a la que pertenece el parámetro de tipo genérico.Gets the generic type definition or generic method definition to which the generic type parameter belongs.

DeclaringType

Obtiene el tipo que declara el tipo anidado actual o el parámetro de tipo genérico.Gets the type that declares the current nested type or generic type parameter.

(Heredado de Type)
FullName

Obtiene null en todos los casos.Gets null in all cases.

GenericParameterAttributes

Obtiene una combinación de marcas GenericParameterAttributes que describen la covarianza y las restricciones especiales del parámetro de tipo genérico actual.Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

GenericParameterAttributes

Obtiene una combinación de marcas GenericParameterAttributes que describen la covarianza y las restricciones especiales del parámetro de tipo genérico actual.Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

(Heredado de Type)
GenericParameterAttributes (Heredado de TypeInfo)
GenericParameterPosition

Obtiene la posición del parámetro de tipo en la lista de parámetros de tipo del método o tipo genérico que declaró el parámetro.Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter.

GenericParameterPosition (Heredado de TypeInfo)
GenericTypeArguments
GenericTypeArguments

Obtiene una matriz de los argumentos de tipo genérico para este tipo.Gets an array of the generic type arguments for this type.

(Heredado de Type)
GenericTypeArguments (Heredado de TypeInfo)
GenericTypeParameters

Obtiene una matriz de los parámetros de tipo genérico de la instancia actual.Gets an array of the generic type parameters of the current instance.

(Heredado de TypeInfo)
GUID

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

HasElementType

Obtiene un valor que indica si el objeto Type actual engloba o hace referencia a otro tipo; es decir, si el objeto Type actual es una matriz o un puntero, o si se pasa por referencia.Gets a value indicating whether the current Type encompasses or refers to another type; that is, whether the current Type is an array, a pointer, or is passed by reference.

(Heredado de Type)
HasElementType (Heredado de TypeInfo)
ImplementedInterfaces

Obtiene una colección de las interfaces implementadas por el tipo actual.Gets a collection of the interfaces implemented by the current type.

(Heredado de TypeInfo)
IsAbstract

Obtiene un valor que indica si Type es abstracto y se debe invalidar.Gets a value indicating whether the Type is abstract and must be overridden.

(Heredado de Type)
IsAbstract (Heredado de TypeInfo)
IsAnsiClass

Obtiene un valor que indica si se selecciona el atributo de formato de cadena AnsiClass para el objeto Type.Gets a value indicating whether the string format attribute AnsiClass is selected for the Type.

(Heredado de Type)
IsAnsiClass (Heredado de TypeInfo)
IsArray

Obtiene un valor que indica si el tipo es una matriz.Gets a value that indicates whether the type is an array.

(Heredado de Type)
IsArray (Heredado de TypeInfo)
IsAutoClass

Obtiene un valor que indica si se selecciona el atributo de formato de cadena AutoClass para el objeto Type.Gets a value indicating whether the string format attribute AutoClass is selected for the Type.

(Heredado de Type)
IsAutoClass (Heredado de TypeInfo)
IsAutoLayout

Obtiene un valor que indica si los campos de tipo de la actual se disponen automáticamente mediante Common Language Runtime.Gets a value indicating whether the fields of the current type are laid out automatically by the common language runtime.

(Heredado de Type)
IsAutoLayout (Heredado de TypeInfo)
IsByRef

Obtiene un valor que indica si Type se pasa por referencia.Gets a value indicating whether the Type is passed by reference.

(Heredado de Type)
IsByRef (Heredado de TypeInfo)
IsByRefLike
IsByRefLike

Obtiene un valor que indica si el tipo es una estructura de tipo ByRef.Gets a value that indicates whether the type is a byref-like structure.

(Heredado de Type)
IsClass

Obtiene un valor que indica si Type es una clase o un delegado, es decir, no es un tipo de valor ni una interfaz.Gets a value indicating whether the Type is a class or a delegate; that is, not a value type or interface.

(Heredado de Type)
IsClass (Heredado de TypeInfo)
IsCollectible

Obtiene un valor que indica si este objeto MemberInfo forma parte de un ensamblado contenido en un AssemblyLoadContext recopilable.Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Heredado de MemberInfo)
IsCOMObject

Obtiene un valor que indica si Type es un objeto COM.Gets a value indicating whether the Type is a COM object.

(Heredado de Type)
IsCOMObject (Heredado de TypeInfo)
IsConstructedGenericType

Obtiene un valor que indica si este objeto representa un tipo genérico construido.Gets a value that indicates whether this object represents a constructed generic type.

IsConstructedGenericType

Obtiene un valor que indica si este objeto representa un tipo genérico construido.Gets a value that indicates whether this object represents a constructed generic type. Puede crear instancias de un tipo genérico construido.You can create instances of a constructed generic type.

(Heredado de Type)
IsContextful

Obtiene un valor que indica si Type puede estar hospedado en un contexto.Gets a value indicating whether the Type can be hosted in a context.

(Heredado de Type)
IsEnum
IsEnum

Obtiene un valor que indica si el objeto Type actual representa una enumeración.Gets a value indicating whether the current Type represents an enumeration.

(Heredado de Type)
IsEnum (Heredado de TypeInfo)
IsExplicitLayout

Obtiene un valor que indica si los campos del tipo actual se disponen en los desplazamientos especificados explícitamente.Gets a value indicating whether the fields of the current type are laid out at explicitly specified offsets.

(Heredado de Type)
IsExplicitLayout (Heredado de TypeInfo)
IsGenericMethodParameter

Obtiene un valor que indica si el objeto Type actual representa un parámetro de tipo en la definición de un método genérico.Gets a value that indicates whether the current Type represents a type parameter in the definition of a generic method.

(Heredado de Type)
IsGenericParameter

Obtiene true en todos los casos.Gets true in all cases.

IsGenericParameter (Heredado de TypeInfo)
IsGenericType

Devuelve false en todos los casosReturns false in all cases.

IsGenericType (Heredado de TypeInfo)
IsGenericTypeDefinition

Obtiene false en todos los casos.Gets false in all cases.

IsGenericTypeDefinition (Heredado de TypeInfo)
IsGenericTypeParameter

Obtiene un valor que indica si el objeto Type actual representa un parámetro de tipo en la definición de un tipo genérico.Gets a value that indicates whether the current Type represents a type parameter in the definition of a generic type.

(Heredado de Type)
IsImport

Obtiene un valor que indica si el objeto Type tiene aplicado un atributo ComImportAttribute, lo que indica que se ha importado de una biblioteca de tipos COM.Gets a value indicating whether the Type has a ComImportAttribute attribute applied, indicating that it was imported from a COM type library.

(Heredado de Type)
IsImport (Heredado de TypeInfo)
IsInterface

Obtiene un valor que indica si Type es una interfaz, es decir, no es una clase ni un tipo de valor.Gets a value indicating whether the Type is an interface; that is, not a class or a value type.

(Heredado de Type)
IsInterface (Heredado de TypeInfo)
IsLayoutSequential

Obtiene un valor que indica si los campos del tipo actual se disponen secuencialmente, en el orden que se definieron o emitieron en los metadatos.Gets a value indicating whether the fields of the current type are laid out sequentially, in the order that they were defined or emitted to the metadata.

(Heredado de Type)
IsLayoutSequential (Heredado de TypeInfo)
IsMarshalByRef

Obtiene un valor que indica si Type se calcula por referencia.Gets a value indicating whether the Type is marshaled by reference.

(Heredado de Type)
IsMarshalByRef (Heredado de TypeInfo)
IsNested

Obtiene un valor que indica si el objeto Type actual representa un tipo cuya definición está anidada dentro de la definición de otro tipo.Gets a value indicating whether the current Type object represents a type whose definition is nested inside the definition of another type.

(Heredado de Type)
IsNested (Heredado de TypeInfo)
IsNestedAssembly

Obtiene un valor que indica si Type está anidado y solo se ve dentro de su propio ensamblado.Gets a value indicating whether the Type is nested and visible only within its own assembly.

(Heredado de Type)
IsNestedAssembly (Heredado de TypeInfo)
IsNestedFamANDAssem

Obtiene un valor que indica si Type está anidado y solo está visible para las clases que pertenezcan tanto a su propia familia como a su propio ensamblado.Gets a value indicating whether the Type is nested and visible only to classes that belong to both its own family and its own assembly.

(Heredado de Type)
IsNestedFamANDAssem (Heredado de TypeInfo)
IsNestedFamily

Obtiene un valor que indica si Type está anidado y solo se ve dentro de su propia familia.Gets a value indicating whether the Type is nested and visible only within its own family.

(Heredado de Type)
IsNestedFamily (Heredado de TypeInfo)
IsNestedFamORAssem

Obtiene un valor que indica si Type está anidado y solo está visible para las clases que pertenezcan a su propia familia o a su propio ensamblado.Gets a value indicating whether the Type is nested and visible only to classes that belong to either its own family or to its own assembly.

(Heredado de Type)
IsNestedFamORAssem (Heredado de TypeInfo)
IsNestedPrivate

Obtiene un valor que indica si Type está anidado y se ha declarado privado.Gets a value indicating whether the Type is nested and declared private.

(Heredado de Type)
IsNestedPrivate (Heredado de TypeInfo)
IsNestedPublic

Obtiene un valor que indica si hay una clase anidada que se ha declarado pública.Gets a value indicating whether a class is nested and declared public.

(Heredado de Type)
IsNestedPublic (Heredado de TypeInfo)
IsNotPublic

Obtiene un valor que indica si el objeto Type no se ha declarado público.Gets a value indicating whether the Type is not declared public.

(Heredado de Type)
IsNotPublic (Heredado de TypeInfo)
IsPointer

Obtiene un valor que indica si el objeto Type es un puntero.Gets a value indicating whether the Type is a pointer.

(Heredado de Type)
IsPointer (Heredado de TypeInfo)
IsPrimitive

Obtiene un valor que indica si el objeto Type es uno de los tipos primitivos.Gets a value indicating whether the Type is one of the primitive types.

(Heredado de Type)
IsPrimitive (Heredado de TypeInfo)
IsPublic

Obtiene un valor que indica si el objeto Type se ha declarado público.Gets a value indicating whether the Type is declared public.

(Heredado de Type)
IsPublic (Heredado de TypeInfo)
IsSealed

Obtiene un valor que indica si el objeto Type se declaró "sealed".Gets a value indicating whether the Type is declared sealed.

(Heredado de Type)
IsSealed (Heredado de TypeInfo)
IsSecurityCritical

Obtiene un valor que indica si el tipo actual es crítico para la seguridad o crítico para la seguridad y disponible desde código transparente en el nivel de confianza actual y, por tanto, puede realizar operaciones críticas.Gets a value that indicates whether the current type is security-critical or security-safe-critical at the current trust level, and therefore can perform critical operations.

(Heredado de Type)
IsSecuritySafeCritical

Obtiene un valor que indica si el tipo actual es crítico para la seguridad y disponible desde código transparente en el nivel de confianza actual; es decir, si puede realizar operaciones críticas y está disponible desde código transparente.Gets a value that indicates whether the current type is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

(Heredado de Type)
IsSecurityTransparent

Obtiene un valor que indica si el tipo actual es transparente en el nivel de confianza actual y, por tanto, no puede realizar operaciones críticas.Gets a value that indicates whether the current type is transparent at the current trust level, and therefore cannot perform critical operations.

(Heredado de Type)
IsSerializable
IsSerializable

Obtiene un valor que indica si el objeto Type es serializable.Gets a value indicating whether the Type is serializable.

(Heredado de Type)
IsSerializable (Heredado de TypeInfo)
IsSignatureType

Obtiene un valor que indica si el tipo es una tipo de firma.Gets a value that indicates whether the type is a signature type.

(Heredado de Type)
IsSpecialName

Obtiene un valor que indica si el tipo tiene un nombre que requiere un tratamiento especial.Gets a value indicating whether the type has a name that requires special handling.

(Heredado de Type)
IsSpecialName (Heredado de TypeInfo)
IsSZArray
IsSZArray

Obtiene un valor que indica si el tipo es un tipo de matriz que puede representar solo una matriz unidimensional con un límite inferior de cero.Gets a value that indicates whether the type is an array type that can represent only a single-dimensional array with a zero lower bound.

(Heredado de Type)
IsTypeDefinition
IsTypeDefinition

Obtiene un valor que indica si el tipo es una definición de tipo.Gets a value that indicates whether the type is a type definition.

(Heredado de Type)
IsUnicodeClass

Obtiene un valor que indica si se selecciona el atributo de formato de cadena UnicodeClass para el objeto Type.Gets a value indicating whether the string format attribute UnicodeClass is selected for the Type.

(Heredado de Type)
IsUnicodeClass (Heredado de TypeInfo)
IsValueType

Obtiene un valor que indica si el objeto Type es un tipo de valor.Gets a value indicating whether the Type is a value type.

(Heredado de Type)
IsValueType (Heredado de TypeInfo)
IsVariableBoundArray
IsVariableBoundArray

Obtiene un valor que indica si el tipo es un tipo de matriz que puede representar una matriz multidimensional o una matriz con un límite inferior arbitrario.Gets a value that indicates whether the type is an array type that can represent a multi-dimensional array or an array with an arbitrary lower bound.

(Heredado de Type)
IsVisible

Obtiene un valor que indica si se puede obtener acceso al objeto Type mediante el código fuera del ensamblado.Gets a value indicating whether the Type can be accessed by code outside the assembly.

(Heredado de Type)
IsVisible (Heredado de TypeInfo)
MemberType

Obtiene un valor de MemberTypes que indica que este miembro es un tipo o un tipo anidado.Gets a MemberTypes value indicating that this member is a type or a nested type.

(Heredado de Type)
MemberType (Heredado de TypeInfo)
MetadataToken

Obtiene un valor que identifica un elemento de metadatos.Gets a value that identifies a metadata element.

(Heredado de MemberInfo)
Module

Obtiene el módulo dinámico que contiene el parámetro de tipo genérico.Gets the dynamic module that contains the generic type parameter.

Name

Obtiene el nombre del parámetro de tipo genérico.Gets the name of the generic type parameter.

Namespace

Obtiene null en todos los casos.Gets null in all cases.

ReflectedType

Obtiene el objeto Type usado para obtener GenericTypeParameterBuilder.Gets the Type object that was used to obtain the GenericTypeParameterBuilder.

ReflectedType

Obtiene el objeto de la clase utilizado para obtener esta instancia de MemberInfo.Gets the class object that was used to obtain this instance of MemberInfo.

(Heredado de MemberInfo)
ReflectedType

Obtiene el objeto de clase usado para obtener este miembro.Gets the class object that was used to obtain this member.

(Heredado de Type)
StructLayoutAttribute

Obtiene una clase StructLayoutAttribute que describe el diseño del tipo actual.Gets a StructLayoutAttribute that describes the layout of the current type.

(Heredado de Type)
StructLayoutAttribute (Heredado de TypeInfo)
TypeHandle

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

TypeHandle

Obtiene el identificador del objeto Type actual.Gets the handle for the current Type.

(Heredado de Type)
TypeInitializer

Obtiene el inicializador para el tipo.Gets the initializer for the type.

(Heredado de Type)
TypeInitializer (Heredado de TypeInfo)
UnderlyingSystemType

Obtiene el parámetro de tipo genérico actual.Gets the current generic type parameter.

UnderlyingSystemType (Heredado de TypeInfo)

Métodos

AsType()

Devuelve el tipo actual como un objeto Type.Returns the current type as a Type object.

(Heredado de TypeInfo)
Equals(Object)

Comprueba si el objeto dado es una instancia de EventToken y es igual a la instancia actual.Tests whether the given object is an instance of EventToken and is equal to the current instance.

Equals(Object)

Determina si el tipo del sistema subyacente del objeto Type actual es el mismo que el tipo del sistema subyacente del objeto Object especificado.Determines if the underlying system type of the current Type object is the same as the underlying system type of the specified Object.

(Heredado de Type)
Equals(Type)

Determina si el tipo de sistema subyacente del objeto Type actual es igual que el tipo de sistema subyacente del objeto Type especificado.Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

(Heredado de Type)
FindInterfaces(TypeFilter, Object)

Devuelve una matriz de objetos Type que representa una lista filtrada de interfaces implementadas o heredadas por el objeto Type actual.Returns an array of Type objects representing a filtered list of interfaces implemented or inherited by the current Type.

(Heredado de Type)
FindInterfaces(TypeFilter, Object) (Heredado de TypeInfo)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

Devuelve una matriz filtrada de objetos MemberInfo del tipo del miembro especificado.Returns a filtered array of MemberInfo objects of the specified member type.

(Heredado de Type)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) (Heredado de TypeInfo)
GetArrayRank()
GetArrayRank()

Obtiene el número de dimensiones de una matriz.Gets the number of dimensions in an array.

(Heredado de Type)
GetArrayRank() (Heredado de TypeInfo)
GetAttributeFlagsImpl()

Cuando se invalida en una clase derivada, implementa la propiedad Attributes y obtiene una combinación bit a bit de valores de enumeración que indican los atributos asociados a Type.When overridden in a derived class, implements the Attributes property and gets a bitwise combination of enumeration values that indicate the attributes associated with the Type.

(Heredado de Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Busca un constructor cuyos parámetros coincidan con los modificadores y tipos de argumento especificados, mediante las restricciones de enlace indicadas y la convención de llamadas también especificada.Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Heredado de Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

Busca un constructor cuyos parámetros coincidan con los tipos y modificadores de argumento especificados, mediante las restricciones de enlace también especificadas.Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Heredado de Type)
GetConstructor(Type[])

Busca un constructor de instancia público cuyos parámetros coincidan con los tipos de la matriz especificada.Searches for a public instance constructor whose parameters match the types in the specified array.

(Heredado de Type)
GetConstructor(Type[]) (Heredado de TypeInfo)
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Cuando se invalida en una clase derivada, busca un constructor cuyos parámetros coincidan con los tipos y modificadores de argumento especificados, y aplica las restricciones de enlace especificadas y la convención de llamadas especificada.When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Heredado de Type)
GetConstructors()

Devuelve todos los constructores públicos definidos para el objeto Type actual.Returns all the public constructors defined for the current Type.

(Heredado de Type)
GetConstructors() (Heredado de TypeInfo)
GetConstructors(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetConstructors(BindingFlags) (Heredado de TypeInfo)
GetCustomAttributes(Boolean)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetCustomAttributes(Boolean)

Cuando se reemplaza en una clase derivada, devuelve una matriz de todos los atributos personalizados aplicados a este miembro.When overridden in a derived class, returns an array of all custom attributes applied to this member.

(Heredado de MemberInfo)
GetCustomAttributes(Type, Boolean)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetCustomAttributes(Type, Boolean)

Cuando se invalida en una clase derivada, devuelve una matriz de atributos personalizados aplicados a este miembro e identificado por Type.When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type.

(Heredado de MemberInfo)
GetCustomAttributesData()

Devuelve una lista de objetos CustomAttributeData que representan datos sobre los atributos que se aplicaron al miembro de destino.Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(Heredado de MemberInfo)
GetDeclaredEvent(String)

Devuelve un objeto que representa el evento público especificado declarado por el tipo actual.Returns an object that represents the specified public event declared by the current type.

(Heredado de TypeInfo)
GetDeclaredField(String)

Devuelve un objeto que representa el campo público especificado declarado por el tipo actual.Returns an object that represents the specified public field declared by the current type.

(Heredado de TypeInfo)
GetDeclaredMethod(String)

Devuelve un objeto que representa el método público especificado declarado por el tipo actual.Returns an object that represents the specified public method declared by the current type.

(Heredado de TypeInfo)
GetDeclaredMethods(String)

Devuelve una colección que contiene todos los métodos públicos declarados en el tipo actual que coinciden con el nombre especificado.Returns a collection that contains all public methods declared on the current type that match the specified name.

(Heredado de TypeInfo)
GetDeclaredNestedType(String)

Devuelve un objeto que representa el tipo anidado público especificado declarado por el tipo actual.Returns an object that represents the specified public nested type declared by the current type.

(Heredado de TypeInfo)
GetDeclaredProperty(String)

Devuelve un objeto que representa la propiedad pública especificada declarada por el tipo actual.Returns an object that represents the specified public property declared by the current type.

(Heredado de TypeInfo)
GetDefaultMembers()

Busca los miembros definidos para el objeto Type actual cuya clase DefaultMemberAttribute esté establecida.Searches for the members defined for the current Type whose DefaultMemberAttribute is set.

(Heredado de Type)
GetDefaultMembers() (Heredado de TypeInfo)
GetElementType()

Devuelve NotSupportedException en todos los casosThrows a NotSupportedException in all cases.

GetEnumName(Object)

Devuelve el nombre de la constante que tiene el valor especificado para el tipo de enumeración actual.Returns the name of the constant that has the specified value, for the current enumeration type.

(Heredado de Type)
GetEnumName(Object) (Heredado de TypeInfo)
GetEnumNames()

Devuelve los nombres de los miembros del tipo de enumeración actual.Returns the names of the members of the current enumeration type.

(Heredado de Type)
GetEnumNames() (Heredado de TypeInfo)
GetEnumUnderlyingType()

Devuelve el tipo subyacente del tipo de enumeración actual.Returns the underlying type of the current enumeration type.

(Heredado de Type)
GetEnumUnderlyingType() (Heredado de TypeInfo)
GetEnumValues()

Devuelve una matriz con los valores de las constantes en el tipo de enumeración actual.Returns an array of the values of the constants in the current enumeration type.

(Heredado de Type)
GetEnumValues() (Heredado de TypeInfo)
GetEvent(String)

Devuelve el objeto EventInfo que representa el evento público especificado.Returns the EventInfo object representing the specified public event.

(Heredado de Type)
GetEvent(String) (Heredado de TypeInfo)
GetEvent(String, BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetEvent(String, BindingFlags) (Heredado de TypeInfo)
GetEvents()

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetEvents() (Heredado de TypeInfo)
GetEvents(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetEvents(BindingFlags) (Heredado de TypeInfo)
GetField(String)

Busca el campo público con el nombre especificado.Searches for the public field with the specified name.

(Heredado de Type)
GetField(String) (Heredado de TypeInfo)
GetField(String, BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetField(String, BindingFlags) (Heredado de TypeInfo)
GetFields()

Devuelve todos los campos públicos del objeto Type actual.Returns all the public fields of the current Type.

(Heredado de Type)
GetFields() (Heredado de TypeInfo)
GetFields(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetFields(BindingFlags) (Heredado de TypeInfo)
GetGenericArguments()

No válido para los parámetros de tipo genérico.Not valid for generic type parameters.

GetGenericArguments() (Heredado de TypeInfo)
GetGenericParameterConstraints()
GetGenericParameterConstraints()

Devuelve una matriz de objetos Type que representan las restricciones en el parámetro de tipo genérico actual.Returns an array of Type objects that represent the constraints on the current generic type parameter.

(Heredado de Type)
GetGenericParameterConstraints() (Heredado de TypeInfo)
GetGenericTypeDefinition()

No válido para los parámetros de tipo genérico.Not valid for generic type parameters.

GetGenericTypeDefinition() (Heredado de TypeInfo)
GetHashCode()

Devuelve un código hash entero de 32 bits de la instancia actual.Returns a 32-bit integer hash code for the current instance.

GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Type)
GetInterface(String)

Busca la interfaz con el nombre especificado.Searches for the interface with the specified name.

(Heredado de Type)
GetInterface(String) (Heredado de TypeInfo)
GetInterface(String, Boolean)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetInterface(String, Boolean) (Heredado de TypeInfo)
GetInterfaceMap(Type)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetInterfaceMap(Type)

Devuelve una asignación de interfaz para el tipo de interfaz especificado.Returns an interface mapping for the specified interface type.

(Heredado de Type)
GetInterfaces()

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetInterfaces() (Heredado de TypeInfo)
GetMember(String)

Busca los miembros públicos con el nombre especificado.Searches for the public members with the specified name.

(Heredado de Type)
GetMember(String) (Heredado de TypeInfo)
GetMember(String, BindingFlags)

Busca los miembros especificados mediante las restricciones de enlace especificadas.Searches for the specified members, using the specified binding constraints.

(Heredado de Type)
GetMember(String, BindingFlags) (Heredado de TypeInfo)
GetMember(String, MemberTypes, BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetMember(String, MemberTypes, BindingFlags) (Heredado de TypeInfo)
GetMembers()

Devuelve todos los miembros públicos del objeto Type actual.Returns all the public members of the current Type.

(Heredado de Type)
GetMembers() (Heredado de TypeInfo)
GetMembers(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetMembers(BindingFlags) (Heredado de TypeInfo)
GetMethod(String)

Busca el método público con el nombre especificado.Searches for the public method with the specified name.

(Heredado de Type)
GetMethod(String) (Heredado de TypeInfo)
GetMethod(String, BindingFlags)

Busca el método especificado mediante las restricciones de enlace especificadas.Searches for the specified method, using the specified binding constraints.

(Heredado de Type)
GetMethod(String, BindingFlags) (Heredado de TypeInfo)
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Busca el método especificado cuyos parámetros coincidan con los tipos y modificadores de argumentos especificados, usando las restricciones de enlace indicadas y la convención de llamada especificada.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Heredado de Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Busca el método especificado cuyos parámetros coincidan con los tipos y modificadores de argumentos especificados, mediante las restricciones de enlace indicadas.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Heredado de Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Busca el método especificado cuyos parámetros coincidan con el número de parámetros genéricos, los tipos de argumento y los modificadores especificados, mediante las restricciones de enlace y la convención de llamada especificadas.Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Heredado de Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

Busca el método especificado cuyos parámetros coincidan con el número de parámetros genéricos, los tipos de argumento y los modificadores especificados, mediante las restricciones de enlace especificadas.Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints.

(Heredado de Type)
GetMethod(String, Int32, Type[])

Busca el método público especificado cuyos parámetros coincidan con el número de parámetros genéricos y los tipos de argumento especificados.Searches for the specified public method whose parameters match the specified generic parameter count and argument types.

(Heredado de Type)
GetMethod(String, Int32, Type[], ParameterModifier[])

Busca el método público especificado cuyos parámetros coincidan con el número de parámetros genéricos, los tipos de argumento y los modificadores especificados.Searches for the specified public method whose parameters match the specified generic parameter count, argument types and modifiers.

(Heredado de Type)
GetMethod(String, Type[])

Busca el método público especificado cuyos parámetros coincidan con los tipos de argumentos especificados.Searches for the specified public method whose parameters match the specified argument types.

(Heredado de Type)
GetMethod(String, Type[]) (Heredado de TypeInfo)
GetMethod(String, Type[], ParameterModifier[])

Busca el método público especificado cuyos parámetros coincidan con los tipos y modificadores de argumento especificados.Searches for the specified public method whose parameters match the specified argument types and modifiers.

(Heredado de Type)
GetMethod(String, Type[], ParameterModifier[]) (Heredado de TypeInfo)
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Cuando se invalida en una clase derivada, busca el método especificado cuyos parámetros coincidan con los tipos y modificadores de argumentos especificados y aplica las restricciones de enlace especificadas y la convención de llamada especificada.When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

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

Cuando se invalida en una clase derivada, busca el método especificado cuyos parámetros coincidan con el número de parámetros genéricos, tipos de argumento y modificadores especificados, mediante las restricciones de enlace y la convención de llamada especificadas.When overridden in a derived class, searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Heredado de Type)
GetMethods()

Devuelve todos los métodos públicos del objeto Type actual.Returns all the public methods of the current Type.

(Heredado de Type)
GetMethods() (Heredado de TypeInfo)
GetMethods(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetMethods(BindingFlags) (Heredado de TypeInfo)
GetNestedType(String)

Busca el tipo anidado público con el nombre especificado.Searches for the public nested type with the specified name.

(Heredado de Type)
GetNestedType(String) (Heredado de TypeInfo)
GetNestedType(String, BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetNestedType(String, BindingFlags) (Heredado de TypeInfo)
GetNestedTypes()

Devuelve los tipos públicos anidados en el objeto Type actual.Returns the public types nested in the current Type.

(Heredado de Type)
GetNestedTypes() (Heredado de TypeInfo)
GetNestedTypes(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetNestedTypes(BindingFlags) (Heredado de TypeInfo)
GetProperties()

Devuelve todas las propiedades públicas del objeto Type actual.Returns all the public properties of the current Type.

(Heredado de Type)
GetProperties() (Heredado de TypeInfo)
GetProperties(BindingFlags)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

GetProperties(BindingFlags) (Heredado de TypeInfo)
GetProperty(String)

Busca la propiedad pública con el nombre especificado.Searches for the public property with the specified name.

(Heredado de Type)
GetProperty(String) (Heredado de TypeInfo)
GetProperty(String, BindingFlags)

Busca la propiedad especificada, mediante las restricciones de enlace especificadas.Searches for the specified property, using the specified binding constraints.

(Heredado de Type)
GetProperty(String, BindingFlags) (Heredado de TypeInfo)
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Busca la propiedad especificada cuyos parámetros coincidan con los tipos y modificadores de argumentos especificados, mediante las restricciones de enlace indicadas.Searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Heredado de Type)
GetProperty(String, Type)

Busca la propiedad pública con el nombre especificado y el tipo de valor devuelto.Searches for the public property with the specified name and return type.

(Heredado de Type)
GetProperty(String, Type) (Heredado de TypeInfo)
GetProperty(String, Type, Type[])

Busca la propiedad pública especificada cuyos parámetros coincidan con los tipos de argumentos especificados.Searches for the specified public property whose parameters match the specified argument types.

(Heredado de Type)
GetProperty(String, Type, Type[]) (Heredado de TypeInfo)
GetProperty(String, Type, Type[], ParameterModifier[])

Busca la propiedad pública especificada cuyos parámetros coincidan con los tipos y modificadores de los argumentos especificados.Searches for the specified public property whose parameters match the specified argument types and modifiers.

(Heredado de Type)
GetProperty(String, Type, Type[], ParameterModifier[]) (Heredado de TypeInfo)
GetProperty(String, Type[])

Busca la propiedad pública especificada cuyos parámetros coincidan con los tipos de argumentos especificados.Searches for the specified public property whose parameters match the specified argument types.

(Heredado de Type)
GetProperty(String, Type[]) (Heredado de TypeInfo)
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Cuando se invalida en una clase derivada, busca la propiedad especificada cuyos parámetros coincidan con los tipos y modificadores de argumentos especificados, usando las restricciones de enlace especificadas.When overridden in a derived class, searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Heredado de Type)
GetType()

Obtiene la estructura Type actual.Gets the current Type.

(Heredado de Type)
GetType()

Detecta los atributos de un miembro y proporciona acceso a sus metadatos.Discovers the attributes of a member and provides access to member metadata.

(Heredado de MemberInfo)
GetTypeCodeImpl()

Devuelve el código de tipo subyacente de esta instancia de Type.Returns the underlying type code of this Type instance.

(Heredado de Type)
HasElementTypeImpl()

Cuando se invalida en una clase derivada, implementa la propiedad HasElementType y determina si el objeto Type actual engloba a otro tipo o hace referencia a él; es decir, si el objeto Type actual es una matriz o un puntero, o se pasa por referencia.When overridden in a derived class, implements the HasElementType property and determines whether the current Type encompasses or refers to another type; that is, whether the current Type is an array, a pointer, or is passed by reference.

(Heredado de Type)
HasSameMetadataDefinitionAs(MemberInfo) (Heredado de MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

Invoca al miembro especificado, aplica las restricciones de enlace igualmente especificadas y compara la lista de argumentos indicada.Invokes the specified member, using the specified binding constraints and matching the specified argument list.

(Heredado de Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

Invoca al miembro especificado, aplica las restricciones de enlace especificadas y compara la lista de argumentos y la referencia cultural igualmente especificadas.Invokes the specified member, using the specified binding constraints and matching the specified argument list and culture.

(Heredado de Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

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

Cuando se invalida en una clase derivada, invoca al miembro especificado, aplica las restricciones de enlace igualmente especificadas y realiza una comparación con la lista de argumentos, los modificadores y la referencia cultural indicados.When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture.

(Heredado de Type)
IsArrayImpl()

Cuando se invalida en una clase derivada, implementa la propiedad IsArray y determina si Type es una matriz.When overridden in a derived class, implements the IsArray property and determines whether the Type is an array.

(Heredado de Type)
IsAssignableFrom(Type)

Se produce una excepción NotSupportedException en todos los casos.Throws a NotSupportedException exception in all cases.

IsAssignableFrom(Type) (Heredado de TypeInfo)
IsAssignableFrom(TypeInfo)

Se produce una excepción NotSupportedException en todos los casos.Throws a NotSupportedException exception in all cases.

IsAssignableFrom(TypeInfo)

Devuelve un valor que indica si el tipo especificado se puede asignar al tipo actual.Returns a value that indicates whether the specified type can be assigned to the current type.

(Heredado de TypeInfo)
IsAssignableTo(Type)

Determina si el tipo actual se puede asignar a una variable del targetType especificado.Determines whether the current type can be assigned to a variable of the specified targetType.

(Heredado de Type)
IsByRefImpl()

Cuando se invalida en una clase derivada, implementa la propiedad IsByRef y determina si Type se pasa por referencia.When overridden in a derived class, implements the IsByRef property and determines whether the Type is passed by reference.

(Heredado de Type)
IsCOMObjectImpl()

Cuando se invalida en una clase derivada, implementa la propiedad IsCOMObject y determina si Type es un objeto COM.When overridden in a derived class, implements the IsCOMObject property and determines whether the Type is a COM object.

(Heredado de Type)
IsContextfulImpl()

Implementa la propiedad IsContextful y determina si la clase Type puede hospedarse en un contexto.Implements the IsContextful property and determines whether the Type can be hosted in a context.

(Heredado de Type)
IsDefined(Type, Boolean)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

IsDefined(Type, Boolean)

Cuando se reemplaza en una clase derivada, indica si se aplican a este miembro uno o más atributos del tipo especificado o de sus tipos derivados.When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member.

(Heredado de MemberInfo)
IsEnumDefined(Object)

Devuelve un valor que indica si el valor especificado existe en el tipo de enumeración actual.Returns a value that indicates whether the specified value exists in the current enumeration type.

(Heredado de Type)
IsEnumDefined(Object) (Heredado de TypeInfo)
IsEquivalentTo(Type)

Determina si dos tipos COM tienen la misma identidad y se pueden usar para la equivalencia de tipos.Determines whether two COM types have the same identity and are eligible for type equivalence.

(Heredado de Type)
IsEquivalentTo(Type) (Heredado de TypeInfo)
IsInstanceOfType(Object)
IsInstanceOfType(Object)

Determina si el objeto especificado es una instancia del objeto Type actual.Determines whether the specified object is an instance of the current Type.

(Heredado de Type)
IsInstanceOfType(Object) (Heredado de TypeInfo)
IsMarshalByRefImpl()

Implementa la propiedad IsMarshalByRef y determina si las referencias de Type se calculan por referencia.Implements the IsMarshalByRef property and determines whether the Type is marshaled by reference.

(Heredado de Type)
IsPointerImpl()

Cuando se invalida en una clase derivada, implementa la propiedad IsPointer y determina si Type es un puntero.When overridden in a derived class, implements the IsPointer property and determines whether the Type is a pointer.

(Heredado de Type)
IsPrimitiveImpl()

Cuando se invalida en una clase derivada, implementa la propiedad IsPrimitive y determina si Type es uno de los tipos primitivos.When overridden in a derived class, implements the IsPrimitive property and determines whether the Type is one of the primitive types.

(Heredado de Type)
IsSubclassOf(Type)

No compatible para los parámetros de tipo genérico incompletos.Not supported for incomplete generic type parameters.

IsSubclassOf(Type) (Heredado de TypeInfo)
IsValueTypeImpl()

Implementa la propiedad IsValueType y determina si Type es un tipo de valor; es decir, no es una clase ni una interfaz.Implements the IsValueType property and determines whether the Type is a value type; that is, not a class or an interface.

(Heredado de Type)
MakeArrayType()

Devuelve el tipo de una matriz unidimensional cuyo tipo de elemento es el parámetro de tipo genérico.Returns the type of a one-dimensional array whose element type is the generic type parameter.

MakeArrayType() (Heredado de TypeInfo)
MakeArrayType(Int32)

Devuelve el tipo de una matriz cuyo tipo de elemento es el parámetro de tipo genérico, con el número especificado de dimensiones.Returns the type of an array whose element type is the generic type parameter, with the specified number of dimensions.

MakeArrayType(Int32) (Heredado de TypeInfo)
MakeByRefType()

Devuelve un objeto Type que representa el parámetro de tipo genérico actual cuando se pasa como un parámetro de referencia.Returns a Type object that represents the current generic type parameter when passed as a reference parameter.

MakeByRefType() (Heredado de TypeInfo)
MakeGenericType(Type[])

No válido para los parámetros de tipo genérico incompletos.Not valid for incomplete generic type parameters.

MakeGenericType(Type[]) (Heredado de TypeInfo)
MakePointerType()

Devuelve un objeto Type que representa un puntero al parámetro de tipo genérico actual.Returns a Type object that represents a pointer to the current generic type parameter.

MakePointerType() (Heredado de TypeInfo)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
SetBaseTypeConstraint(Type)

Establece el tipo de base que debe heredar un tipo con el fin de ser sustituido para el parámetro de tipo.Sets the base type that a type must inherit in order to be substituted for the type parameter.

SetCustomAttribute(ConstructorInfo, Byte[])

Establece un atributo personalizado mediante un blob de atributo personalizado especificado.Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

Establece un atributo personalizado mediante un generador de atributos personalizado.Set a custom attribute using a custom attribute builder.

SetGenericParameterAttributes(GenericParameterAttributes)

Establece las características de varianza y las restricciones especiales del parámetro genérico, como la restricción de constructor sin parámetros.Sets the variance characteristics and special constraints of the generic parameter, such as the parameterless constructor constraint.

SetInterfaceConstraints(Type[])

Establece las interfaces que debe implementar un tipo para que se sustituya por el parámetro de tipo.Sets the interfaces a type must implement in order to be substituted for the type parameter.

ToString()

Devuelve una representación de cadena del parámetro de tipo genérico actual.Returns a string representation of the current generic type parameter.

ToString()

Devuelve un valor String que representa el nombre del objeto Type actual.Returns a String representing the name of the current Type.

(Heredado de Type)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de MemberInfo)
_MemberInfo.GetType()

Objeto Type que representa la clase MemberInfo.Gets a Type object representing the MemberInfo class.

(Heredado de MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Heredado de MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Heredado de Type)
_Type.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de Type)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Devuelve una matriz de todos los atributos personalizados definidos en este miembro, excluidos los atributos con nombre, o una matriz vacía si no hay atributos personalizados.Returns an array of all of the custom attributes defined on this member, excluding named attributes, or an empty array if there are no custom attributes.

(Heredado de MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Devuelve una matriz de atributos personalizados definidos en este miembro, identificados por tipo, o una matriz vacía si no hay atributos personalizados de ese tipo.Returns an array of custom attributes defined on this member, identified by type, or an empty array if there are no custom attributes of that type.

(Heredado de MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Indica si una o más instancias de attributeType se definen en este miembro.Indicates whether one or more instance of attributeType is defined on this member.

(Heredado de MemberInfo)
IReflectableType.GetTypeInfo()

Devuelve una representación del tipo actual en forma de objeto TypeInfo.Returns a representation of the current type as a TypeInfo object.

(Heredado de TypeInfo)

Métodos de extensión

GetCustomAttribute(MemberInfo, Type)

Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

Recupera una colección de atributos personalizados que se aplican a un miembro especificado.Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Recupera una colección de atributos personalizados que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro.Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

Indica si se deben aplicar atributos personalizados de un tipo especificado a un miembro especificado.Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

Indica si los atributos personalizados de un tipo especificado se aplican a un miembro especificado y, opcionalmente, se aplican a sus antecesores.Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetTypeInfo(Type)

Devuelve la representación de TypeInfo del tipo especificado.Returns the TypeInfo representation of the specified type.

GetMetadataToken(MemberInfo)

Obtiene un token de metadatos del miembro determinado, si está disponible.Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Devuelve un valor que indica si un token de metadatos está disponible para el miembro especificado.Returns a value that indicates whether a metadata token is available for the specified member.

GetRuntimeEvent(Type, String)

Recupera un objeto que representa el evento especificado.Retrieves an object that represents the specified event.

GetRuntimeEvents(Type)

Recupera una colección que representa todos los eventos definidos en un tipo especificado.Retrieves a collection that represents all the events defined on a specified type.

GetRuntimeField(Type, String)

Recupera un objeto que representa un campo especificado.Retrieves an object that represents a specified field.

GetRuntimeFields(Type)

Recupera una colección que representa todos los campos definidos en un tipo especificado.Retrieves a collection that represents all the fields defined on a specified type.

GetRuntimeInterfaceMap(TypeInfo, Type)

Devuelve una asignación de interfaz para el tipo de interfaz y la interfaz especificada.Returns an interface mapping for the specified type and the specified interface.

GetRuntimeMethod(Type, String, Type[])

Recupera un objeto que representa un método especificado.Retrieves an object that represents a specified method.

GetRuntimeMethods(Type)

Recupera una colección que representa todos los métodos definidos en un tipo especificado.Retrieves a collection that represents all methods defined on a specified type.

GetRuntimeProperties(Type)

Recupera una colección que representa todas las propiedades definidas en un tipo especificado.Retrieves a collection that represents all the properties defined on a specified type.

GetRuntimeProperty(Type, String)

Recupera un objeto que representa una propiedad especificada.Retrieves an object that represents a specified property.

GetConstructor(Type, Type[])
GetConstructors(Type)
GetConstructors(Type, BindingFlags)
GetDefaultMembers(Type)
GetEvent(Type, String)
GetEvent(Type, String, BindingFlags)
GetEvents(Type)
GetEvents(Type, BindingFlags)
GetField(Type, String)
GetField(Type, String, BindingFlags)
GetFields(Type)
GetFields(Type, BindingFlags)
GetGenericArguments(Type)
GetInterfaces(Type)
GetMember(Type, String)
GetMember(Type, String, BindingFlags)
GetMembers(Type)
GetMembers(Type, BindingFlags)
GetMethod(Type, String)
GetMethod(Type, String, BindingFlags)
GetMethod(Type, String, Type[])
GetMethods(Type)
GetMethods(Type, BindingFlags)
GetNestedType(Type, String, BindingFlags)
GetNestedTypes(Type, BindingFlags)
GetProperties(Type)
GetProperties(Type, BindingFlags)
GetProperty(Type, String)
GetProperty(Type, String, BindingFlags)
GetProperty(Type, String, Type)
GetProperty(Type, String, Type, Type[])
IsAssignableFrom(Type, Type)
IsInstanceOfType(Type, Object)

Se aplica a

Consulte también