GenericTypeParameterBuilder Klasse

Definition

Definiert und erstellt generische Typparameter für dynamisch definierte generische Typen und Methoden.Defines and creates generic type parameters for dynamically defined generic types and methods. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class GenericTypeParameterBuilder sealed : System::Reflection::TypeInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
type GenericTypeParameterBuilder = class
    inherit TypeInfo
Public NotInheritable Class GenericTypeParameterBuilder
Inherits TypeInfo
Vererbung
GenericTypeParameterBuilder
Attribute

Beispiele

Im folgenden Codebeispiel wird ein generischer Typ mit zwei Typparametern erstellt und in der Assembly GenericEmitExample1. dll gespeichert.The following code example creates a generic type with two type parameters, and saves them in the assembly GenericEmitExample1.dll. Sie können den Ildasm. exe (IL-Disassembler) verwenden, um die generierten Typen anzuzeigen.You can use the Ildasm.exe (IL Disassembler) to view the generated types. Eine ausführlichere Erläuterung der Schritte beim Definieren eines dynamischen generischen Typs finden Sie unter Gewusst wie: Definieren eines generischen Typs mit Reflektionsausgabe.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

Hinweise

Sie können ein Array von GenericTypeParameterBuilder -Objekten mit der TypeBuilder.DefineGenericParameters -Methode zum Hinzufügen von Typparametern zu einem dynamischen Typ verwenden, wodurch es zu einem generischen Typ wird MethodBuilder.DefineGenericParameters , oder indem Sie die-Methode verwenden, um einer dynamischen Methode Typparameter hinzuzufügen.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. Verwenden Sie GenericTypeParameterBuilder die-Objekte, um Einschränkungen zu den Typparametern hinzuzufügen.Use the GenericTypeParameterBuilder objects to add constraints to the type parameters. Einschränkungen sind von drei Arten:Constraints are of three kinds:

  • Die Basistyp Einschränkung gibt an, dass jeder Typ, der dem generischen Typparameter zugewiesen ist, von einem bestimmten Basistyp abgeleitet werden muss.The base type constraint specifies that any type assigned to the generic type parameter must derive from a particular base type. Legen Sie diese Einschränkung mithilfe der SetBaseTypeConstraint -Methode fest.Set this constraint by using the SetBaseTypeConstraint method.

  • Eine Schnittstellen Einschränkung gibt an, dass jeder Typ, der dem generischen Typparameter zugewiesen ist, eine bestimmte Schnittstelle implementieren muss.An interface constraint specifies that any type assigned to the generic type parameter must implement a particular interface. Legen Sie die Schnittstellen Einschränkungen mithilfe der SetInterfaceConstraints -Methode fest.Set the interface constraints by using the SetInterfaceConstraints method.

  • Besondere Einschränkungen geben an, dass jeder Typ, der dem generischen Typparameter zugewiesen ist, über einen Parameter losen Konstruktor verfügen muss, ein Verweistyp sein muss oder ein Werttyp sein muss.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. Legen Sie die besonderen Einschränkungen für einen Typparameter fest, SetGenericParameterAttributes indem Sie die-Methode verwenden.Set the special constraints for a type parameter by using the SetGenericParameterAttributes method.

Schnittstellen Einschränkungen und spezielle Einschränkungen können nicht mithilfe von Methoden der GenericTypeParameterBuilder -Klasse abgerufen werden.Interface constraints and special constraints cannot be retrieved using methods of the GenericTypeParameterBuilder class. Nachdem Sie den generischen Typ erstellt haben, der die Typparameter enthält, können Sie Type das zugehörige-Objekt verwenden, um die Einschränkungen widerzuspiegeln.Once you have created the generic type that contains the type parameters, you can use its Type object to reflect the constraints. Verwenden Sie Type.GetGenericArguments die-Methode, um die Typparameter zu erhalten, und verwenden Sie Type.GetGenericParameterConstraints für jeden Typparameter die-Methode, um die Basistyp Einschränkung Type.GenericParameterAttributes und Schnittstellen Einschränkungen zu erhalten, und die-Eigenschaft, um die besonderen Einschränkungen zu erhalten.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.

Eigenschaften

Assembly

Ruft ein Assembly-Objekt ab, das die dynamische Assembly mit der Definition des generischen Typs darstellt, zu dem der aktuelle Typparameter gehört.Gets an Assembly object representing the dynamic assembly that contains the generic type definition the current type parameter belongs to.

AssemblyQualifiedName

Ruft in allen Fällen null ab.Gets null in all cases.

Attributes
BaseType

Ruft die Basistypeinschränkung des aktuellen generischen Typparameters ab.Gets the base type constraint of the current generic type parameter.

ContainsGenericParameters

Ruft in allen Fällen true ab.Gets true in all cases.

CustomAttributes

Ruft eine Sammlung ab, die die benutzerdefinierten Attribute dieses Members enthält.Gets a collection that contains this member's custom attributes.

(Geerbt von MemberInfo)
DeclaringMethod

Ruft eine MethodInfo ab, die die deklarierende Methode darstellt, wenn der aktuelle GenericTypeParameterBuilder einen Typparameter einer generischen Methode darstellt.Gets a MethodInfo that represents the declaring method, if the current GenericTypeParameterBuilder represents a type parameter of a generic method.

DeclaringType

Ruft die generische Typdefinition oder die generische Methodendefinition ab, zu der der generische Typparameter gehört.Gets the generic type definition or generic method definition to which the generic type parameter belongs.

FullName

Ruft in allen Fällen null ab.Gets null in all cases.

GenericParameterAttributes

Ruft eine Kombination von GenericParameterAttributes-Flags ab, die die Kovarianz und die speziellen Einschränkungen des aktuellen generischen Typparameters beschreiben.Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

GenericParameterPosition

Ruft die Position des Typparameters in der Typparameterliste des generischen Typs oder der generischen Methode ab, der bzw. die den Parameter deklariert hat.Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter.

GenericTypeArguments
GUID

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

HasElementType

Ruft einen Wert ab, der angibt, ob der aktuelle Type einen anderen Typ umfasst oder auf einen anderen Typ verweist, d. h. ob der aktuelle Type ein Array oder ein Zeiger ist oder als Verweis übergeben wird.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.

(Geerbt von Type)
IsAbstract

Ruft einen Wert ab, der angibt, ob der Type abstrakt ist und überschrieben werden muss.Gets a value indicating whether the Type is abstract and must be overridden.

(Geerbt von Type)
IsAnsiClass

Ruft einen Wert ab, der angibt, ob für AnsiClass das Zeichenfolgenformatattribut Type ausgewählt ist.Gets a value indicating whether the string format attribute AnsiClass is selected for the Type.

(Geerbt von Type)
IsArray

Ruft einen Wert ab, der angibt, ob der Typ ein Array ist.Gets a value that indicates whether the type is an array.

(Geerbt von Type)
IsAutoClass

Ruft einen Wert ab, der angibt, ob für AutoClass das Zeichenfolgenformatattribut Type ausgewählt ist.Gets a value indicating whether the string format attribute AutoClass is selected for the Type.

(Geerbt von Type)
IsAutoLayout

Ruft einen Wert ab, der angibt, ob die Felder des aktuellen Typs automatisch von der Common Language Runtime angelegt werden.Gets a value indicating whether the fields of the current type are laid out automatically by the common language runtime.

(Geerbt von Type)
IsByRef

Ruft einen Wert ab, der angibt, ob Type als Verweis übergeben wird.Gets a value indicating whether the Type is passed by reference.

(Geerbt von Type)
IsByRefLike
IsClass

Ruft einen Wert ab, der angibt, ob Type eine Klasse oder ein Delegat ist, d. h. weder ein Werttyp noch eine Schnittstelle.Gets a value indicating whether the Type is a class or a delegate; that is, not a value type or interface.

(Geerbt von Type)
IsCollectible

Ruft einen Wert ab, der angibt, ob dieses AssemblyLoadContext-Objekt Teil einer Assembly ist, die sich in einem entladbaren MemberInfo befindet.Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Geerbt von MemberInfo)
IsCOMObject

Ruft einen Wert ab, der angibt, ob Type ein COM-Objekt ist.Gets a value indicating whether the Type is a COM object.

(Geerbt von Type)
IsConstructedGenericType

Ruft einen Wert ab, der angibt, ob dieses Objekt einen konstruierten generischen Typ darstellt.Gets a value that indicates whether this object represents a constructed generic type.

IsContextful

Ruft einen Wert ab, der angibt, ob Type in einen Kontext aufgenommen werden kann.Gets a value indicating whether the Type can be hosted in a context.

(Geerbt von Type)
IsEnum
IsExplicitLayout

Ruft einen Wert ab, der angibt, ob die Felder des aktuellen Typs an den explizit angegebenen Offsets angelegt werden.Gets a value indicating whether the fields of the current type are laid out at explicitly specified offsets.

(Geerbt von Type)
IsGenericMethodParameter (Geerbt von Type)
IsGenericParameter

Ruft in allen Fällen true ab.Gets true in all cases.

IsGenericType

Gibt immer false zurück.Returns false in all cases.

IsGenericTypeDefinition

Ruft in allen Fällen false ab.Gets false in all cases.

IsGenericTypeParameter (Geerbt von Type)
IsImport

Ruft einen Wert ab, der angibt, ob der Type ein ComImportAttribute-Attribut hat, was bedeutet, dass er aus einer COM-Typbibliothek importiert wurde.Gets a value indicating whether the Type has a ComImportAttribute attribute applied, indicating that it was imported from a COM type library.

(Geerbt von Type)
IsInterface

Ruft einen Wert ab, der angibt, ob Type eine Schnittstelle ist, d. h. weder eine Klasse noch ein Werttyp.Gets a value indicating whether the Type is an interface; that is, not a class or a value type.

(Geerbt von Type)
IsLayoutSequential

Ruft einen Wert ab, der angibt, ob die Felder des aktuellen Typs sequenziell angelegt werden, in der Reihenfolge, in der sie definiert oder an die Metadaten ausgegeben wurden.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.

(Geerbt von Type)
IsMarshalByRef

Ruft einen Wert ab, der angibt, ob Type als Verweis gemarshallt wird.Gets a value indicating whether the Type is marshaled by reference.

(Geerbt von Type)
IsNested

Ruft einen Wert ab, der angibt, ob das aktuelle Type-Objekt einen Typ darstellt, dessen Definition in der Definition eines anderen Typs geschachtelt ist.Gets a value indicating whether the current Type object represents a type whose definition is nested inside the definition of another type.

(Geerbt von Type)
IsNestedAssembly

Ruft einen Wert ab, der angibt, ob Type geschachtelt und nur innerhalb der eigenen Assembly sichtbar ist.Gets a value indicating whether the Type is nested and visible only within its own assembly.

(Geerbt von Type)
IsNestedFamANDAssem

Ruft einen Wert ab, der angibt, ob Type geschachtelt und ausschließlich für Klassen sichtbar ist, die sowohl zur eigenen Familie als auch zur eigenen Assembly gehören.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.

(Geerbt von Type)
IsNestedFamily

Ruft einen Wert ab, der angibt, ob Type geschachtelt und nur innerhalb der eigenen Familie sichtbar ist.Gets a value indicating whether the Type is nested and visible only within its own family.

(Geerbt von Type)
IsNestedFamORAssem

Ruft einen Wert ab, der angibt, ob Type geschachtelt und ausschließlich für Klassen sichtbar ist, die zur eigenen Familie oder zur eigenen Assembly gehören.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.

(Geerbt von Type)
IsNestedPrivate

Ruft einen Wert ab, der angibt, ob Type geschachtelt und als privat deklariert ist.Gets a value indicating whether the Type is nested and declared private.

(Geerbt von Type)
IsNestedPublic

Ruft einen Wert ab, der angibt, ob eine Klasse geschachtelt und als öffentlich deklariert ist.Gets a value indicating whether a class is nested and declared public.

(Geerbt von Type)
IsNotPublic

Ruft einen Wert ab, der angibt, ob der Type nicht als öffentlich deklariert ist.Gets a value indicating whether the Type is not declared public.

(Geerbt von Type)
IsPointer

Ruft einen Wert ab, der angibt, ob Type ein Zeiger ist.Gets a value indicating whether the Type is a pointer.

(Geerbt von Type)
IsPrimitive

Ruft einen Wert ab, der angibt, ob Type zu den primitiven Typen gehört.Gets a value indicating whether the Type is one of the primitive types.

(Geerbt von Type)
IsPublic

Ruft einen Wert ab, der angibt, ob der Type als öffentlich deklariert ist.Gets a value indicating whether the Type is declared public.

(Geerbt von Type)
IsSealed

Ruft einen Wert ab, der angibt, ob der Type als versiegelt deklariert ist.Gets a value indicating whether the Type is declared sealed.

(Geerbt von Type)
IsSecurityCritical

Ruft einen Wert ab, der angibt, ob der aktuelle Typ auf der aktuellen Vertrauensebene sicherheitsrelevant ist und daher wichtige Vorgänge ausführen darf.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.

(Geerbt von Type)
IsSecuritySafeCritical

Ruft einen Wert ab, der angibt, ob der aktuelle Typ auf der aktuellen Vertrauensebene sicherheitsrelevant ist, d. h. ob er wichtige Vorgänge ausführen darf und ob von transparentem Code auf ihn zugegriffen werden kann.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.

(Geerbt von Type)
IsSecurityTransparent

Ruft einen Wert ab, der angibt, ob der aktuelle Typ auf der aktuellen Vertrauensebene sicherheitstransparent ist und daher keine wichtigen Vorgänge ausführen kann.Gets a value that indicates whether the current type is transparent at the current trust level, and therefore cannot perform critical operations.

(Geerbt von Type)
IsSerializable
IsSignatureType (Geerbt von Type)
IsSpecialName

Ruft einen Wert ab, der angibt, ob der Typ einen Namen besitzt, der eine Sonderbehandlung erfordert.Gets a value indicating whether the type has a name that requires special handling.

(Geerbt von Type)
IsSZArray
IsTypeDefinition
IsUnicodeClass

Ruft einen Wert ab, der angibt, ob für UnicodeClass das Zeichenfolgenformatattribut Typeausgewählt ist.Gets a value indicating whether the string format attribute UnicodeClass is selected for the Type.

(Geerbt von Type)
IsValueType

Ruft einen Wert ab, der angibt, ob Type ein Werttyp ist.Gets a value indicating whether the Type is a value type.

(Geerbt von Type)
IsVariableBoundArray
IsVisible

Ruft einen Wert ab, der angibt, ob auf den Type aus Code von außerhalb der Assembly zugegriffen werden kann.Gets a value indicating whether the Type can be accessed by code outside the assembly.

(Geerbt von Type)
MemberType

Ruft einen MemberTypes-Wert ab, der angibt, dass dieser Member ein Typ oder ein geschachtelter Typ ist.Gets a MemberTypes value indicating that this member is a type or a nested type.

(Geerbt von Type)
MetadataToken

Ruft einen Wert ab, der ein Metadatenelement identifiziert.Gets a value that identifies a metadata element.

(Geerbt von MemberInfo)
Module

Ruft das dynamische Modul ab, das den generischen Typparameter enthält.Gets the dynamic module that contains the generic type parameter.

Name

Ruft den Namen des generischen Typparameters ab.Gets the name of the generic type parameter.

Namespace

Ruft in allen Fällen null ab.Gets null in all cases.

ReflectedType

Ruft das Type-Objekt ab, mit dem der GenericTypeParameterBuilder abgerufen wurde.Gets the Type object that was used to obtain the GenericTypeParameterBuilder.

StructLayoutAttribute

Ruft ein StructLayoutAttribute ab, der das Layout des aktuellen Typs beschreibt.Gets a StructLayoutAttribute that describes the layout of the current type.

(Geerbt von Type)
TypeHandle

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

TypeInitializer

Ruft den Initialisierer für den Typ ab.Gets the initializer for the type.

(Geerbt von Type)
UnderlyingSystemType

Ruft den aktuellen generischen Typparameter ab.Gets the current generic type parameter.

Methoden

Equals(Object)

Überprüft, ob das gegebene Objekt eine Instanz von EventToken ist und gleich der aktuellen Instanz ist.Tests whether the given object is an instance of EventToken and is equal to the current instance.

Equals(Type)

Bestimmt, ob der zugrunde liegende Systemtyp des aktuellen Type mit dem zugrunde liegenden Systemtyp des angegebenen Type übereinstimmt.Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

(Geerbt von Type)
FindInterfaces(TypeFilter, Object)

Gibt ein Array von Type-Objekten zurück, die eine gefilterte Liste von Schnittstellen darstellen, die vom aktuellen Type implementiert oder geerbt wurden.Returns an array of Type objects representing a filtered list of interfaces implemented or inherited by the current Type.

(Geerbt von Type)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

Gibt ein gefiltertes Array von MemberInfo-Objekten mit dem angegebenen Membertyp zurück.Returns a filtered array of MemberInfo objects of the specified member type.

(Geerbt von Type)
GetArrayRank()
GetAttributeFlagsImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die Attributes-Eigenschaft und ruft eine bitweise Kombination von Enumerationswerten ab, die die Type zugeordneten Attribute anzeigen.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.

(Geerbt von Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Sucht einen Konstruktor, dessen Parameter den angegebenen Argumenttypen und -modifizierern entsprechen, und berücksichtigt dabei die angegebenen Bindungseinschränkungen und die angegebene Aufrufkonvention.Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Geerbt von Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

Sucht einen Konstruktor, dessen Parameter unter Verwendung der angegebenen Bindungseinschränkungen den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Geerbt von Type)
GetConstructor(Type[])

Sucht einen öffentlichen Instanzkonstruktor, dessen Parameter den Typen im angegebenen Array entsprechen.Searches for a public instance constructor whose parameters match the types in the specified array.

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

Sucht beim Überschreiben in einer abgeleiteten Klasse, unter Verwendung der angegebenen Bindungseinschränkungen und der angegebenen Aufrufkonvention, nach einem Konstruktor, dessen Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.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.

(Geerbt von Type)
GetConstructors()

Gibt alle öffentlichen Konstruktoren zurück, die für den aktuellen Type definiert sind.Returns all the public constructors defined for the current Type.

(Geerbt von Type)
GetConstructors(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetCustomAttributes(Boolean)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetCustomAttributes(Type, Boolean)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetCustomAttributesData()

Gibt eine Liste von CustomAttributeData-Objekten zurück, die Daten zu den Attributen darstellen, die auf den Zielmember angewendet wurden.Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(Geerbt von MemberInfo)
GetDefaultMembers()

Sucht nach den für den aktuellen Type definierten Membern, deren DefaultMemberAttribute festgelegt ist.Searches for the members defined for the current Type whose DefaultMemberAttribute is set.

(Geerbt von Type)
GetElementType()

Löst in allen Fällen eine NotSupportedException aus.Throws a NotSupportedException in all cases.

GetEnumName(Object)

Gibt den Namen der Konstanten für den aktuellen Enumerationstyp zurück, die den angegebenen Wert aufweist.Returns the name of the constant that has the specified value, for the current enumeration type.

(Geerbt von Type)
GetEnumNames()

Gibt die Namen der Member des aktuellen Enumerationstyps zurück.Returns the names of the members of the current enumeration type.

(Geerbt von Type)
GetEnumUnderlyingType()

Gibt den zugrunde liegenden Typ des aktuellen Enumerationstyps zurück.Returns the underlying type of the current enumeration type.

(Geerbt von Type)
GetEnumValues()

Gibt ein Array mit den Werten der Konstanten im aktuellen Enumerationstyp zurück.Returns an array of the values of the constants in the current enumeration type.

(Geerbt von Type)
GetEvent(String)

Gibt das EventInfo-Objekt zurück, das das angegebene öffentliche Ereignis darstellt.Returns the EventInfo object representing the specified public event.

(Geerbt von Type)
GetEvent(String, BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetEvents()

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetEvents(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetField(String)

Sucht das öffentliche Feld mit dem angegebenen Namen.Searches for the public field with the specified name.

(Geerbt von Type)
GetField(String, BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetFields()

Gibt sämtliche öffentlichen Felder des aktuellen Type zurück.Returns all the public fields of the current Type.

(Geerbt von Type)
GetFields(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetGenericArguments()

Ist bei generischen Typparametern ungültig.Not valid for generic type parameters.

GetGenericParameterConstraints()
GetGenericTypeDefinition()

Ist bei generischen Typparametern ungültig.Not valid for generic type parameters.

GetHashCode()

Gibt einen 32-Bit-Ganzzahl-Hashcode für die aktuelle Instanz zurück.Returns a 32-bit integer hash code for the current instance.

GetInterface(String)

Sucht die Schnittstelle mit dem angegebenen Namen.Searches for the interface with the specified name.

(Geerbt von Type)
GetInterface(String, Boolean)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetInterfaceMap(Type)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetInterfaces()

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetMember(String)

Sucht die öffentlichen Member mit dem angegebenen Namen.Searches for the public members with the specified name.

(Geerbt von Type)
GetMember(String, BindingFlags)

Sucht die angegebenen Member unter Verwendung der angegebenen Bindungseinschränkungen.Searches for the specified members, using the specified binding constraints.

(Geerbt von Type)
GetMember(String, MemberTypes, BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetMembers()

Gibt sämtliche öffentlichen Member des aktuellen Type zurück.Returns all the public members of the current Type.

(Geerbt von Type)
GetMembers(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetMethod(String)

Sucht die öffentliche Methode mit dem angegebenen Namen.Searches for the public method with the specified name.

(Geerbt von Type)
GetMethod(String, BindingFlags)

Sucht die angegebene Methode unter Verwendung der angegebenen Bindungseinschränkungen.Searches for the specified method, using the specified binding constraints.

(Geerbt von Type)
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Sucht nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen, und verwendet dabei die angegebenen Bindungseinschränkungen und die angegebene Aufrufkonvention.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Geerbt von Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Sucht unter Verwendung der angegebenen Bindungseinschränkungen nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Geerbt von Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) (Geerbt von Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[]) (Geerbt von Type)
GetMethod(String, Int32, Type[]) (Geerbt von Type)
GetMethod(String, Int32, Type[], ParameterModifier[]) (Geerbt von Type)
GetMethod(String, Type[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen entsprechen.Searches for the specified public method whose parameters match the specified argument types.

(Geerbt von Type)
GetMethod(String, Type[], ParameterModifier[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified public method whose parameters match the specified argument types and modifiers.

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

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen und der angegebenen Aufrufkonvention nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.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.

(Geerbt von Type)
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) (Geerbt von Type)
GetMethods()

Gibt sämtliche öffentlichen Methoden des aktuellen Type zurück.Returns all the public methods of the current Type.

(Geerbt von Type)
GetMethods(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetNestedType(String)

Sucht den öffentlichen geschachtelten Typ mit dem angegebenen Namen.Searches for the public nested type with the specified name.

(Geerbt von Type)
GetNestedType(String, BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetNestedTypes()

Gibt die im aktuellen Type geschachtelten öffentlichen Typen zurück.Returns the public types nested in the current Type.

(Geerbt von Type)
GetNestedTypes(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetProperties()

Gibt sämtliche öffentlichen Eigenschaften des aktuellen Type zurück.Returns all the public properties of the current Type.

(Geerbt von Type)
GetProperties(BindingFlags)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

GetProperty(String)

Sucht die öffentliche Eigenschaft mit dem angegebenen Namen.Searches for the public property with the specified name.

(Geerbt von Type)
GetProperty(String, BindingFlags)

Sucht die angegebene Eigenschaft unter Verwendung der angegebenen Bindungseinschränkungen.Searches for the specified property, using the specified binding constraints.

(Geerbt von Type)
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Sucht anhand der angegebenen Bindungseinschränkungen nach der angegebenen Eigenschaft, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Geerbt von Type)
GetProperty(String, Type)

Sucht die öffentliche Eigenschaft mit dem angegebenen Namen und Rückgabetyp.Searches for the public property with the specified name and return type.

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

Sucht die angegebene öffentliche Eigenschaft, deren Parameter den angegebenen Argumenttypen entsprechen.Searches for the specified public property whose parameters match the specified argument types.

(Geerbt von Type)
GetProperty(String, Type, Type[], ParameterModifier[])

Sucht die angegebene öffentliche Eigenschaft, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified public property whose parameters match the specified argument types and modifiers.

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

Sucht die angegebene öffentliche Eigenschaft, deren Parameter den angegebenen Argumenttypen entsprechen.Searches for the specified public property whose parameters match the specified argument types.

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

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen nach der angegebenen Eigenschaft, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.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.

(Geerbt von Type)
GetType()

Ruft den aktuellen Type ab.Gets the current Type.

(Geerbt von Type)
GetTypeCodeImpl()

Gibt den zugrunde liegenden Typcode dieser Type-Instanz zurück.Returns the underlying type code of this Type instance.

(Geerbt von Type)
HasElementTypeImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die HasElementType-Eigenschaft und bestimmt, ob der aktuelle Type einen anderen Typ umfasst oder auf einen solchen verweist, d. h. ob der aktuelle Type ein Array oder Zeiger ist oder als Verweis übergeben wird.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.

(Geerbt von Type)
HasSameMetadataDefinitionAs(MemberInfo) (Geerbt von MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

Ruft den angegebenen Member auf, der den angegebenen Bindungseinschränkungen und der angegebenen Argumentliste entspricht.Invokes the specified member, using the specified binding constraints and matching the specified argument list.

(Geerbt von Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

Ruft den angegebenen Member auf, der den angegebenen Bindungseinschränkungen sowie der angegebenen Argumentliste und Kultur entspricht.Invokes the specified member, using the specified binding constraints and matching the specified argument list and culture.

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

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

IsArrayImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die IsArray-Eigenschaft und bestimmt, ob Type ein Array ist.When overridden in a derived class, implements the IsArray property and determines whether the Type is an array.

(Geerbt von Type)
IsAssignableFrom(Type)

Löst in allen Fällen eine NotSupportedException-Ausnahme aus.Throws a NotSupportedException exception in all cases.

IsAssignableFrom(TypeInfo)

Löst in allen Fällen eine NotSupportedException-Ausnahme aus.Throws a NotSupportedException exception in all cases.

IsByRefImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die IsByRef-Eigenschaft und bestimmt, ob Type als Verweis übergeben wird.When overridden in a derived class, implements the IsByRef property and determines whether the Type is passed by reference.

(Geerbt von Type)
IsCOMObjectImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die IsCOMObject-Eigenschaft und bestimmt, ob Type ein COM-Objekt ist.When overridden in a derived class, implements the IsCOMObject property and determines whether the Type is a COM object.

(Geerbt von Type)
IsContextfulImpl()

Implementiert die IsContextful-Eigenschaft und bestimmt, ob Type in einen Kontext aufgenommen werden kann.Implements the IsContextful property and determines whether the Type can be hosted in a context.

(Geerbt von Type)
IsDefined(Type, Boolean)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

IsEnumDefined(Object)

Gibt einen Wert zurück, der angibt, ob der angegebene Wert im aktuellen Enumerationstyp vorhanden ist.Returns a value that indicates whether the specified value exists in the current enumeration type.

(Geerbt von Type)
IsEquivalentTo(Type)

Bestimmt, ob zwei COM-Typen die gleiche Identität haben und äquivalente Typen aufweisen können.Determines whether two COM types have the same identity and are eligible for type equivalence.

(Geerbt von Type)
IsInstanceOfType(Object)
IsMarshalByRefImpl()

Implementiert die IsMarshalByRef-Eigenschaft und bestimmt, ob der Type als Verweis gemarshallt wird.Implements the IsMarshalByRef property and determines whether the Type is marshaled by reference.

(Geerbt von Type)
IsPointerImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die IsPointer-Eigenschaft und bestimmt, ob Type ein Zeiger ist.When overridden in a derived class, implements the IsPointer property and determines whether the Type is a pointer.

(Geerbt von Type)
IsPrimitiveImpl()

Implementiert beim Überschreiben in einer abgeleiteten Klasse die IsPrimitive-Eigenschaft und bestimmt, ob Type zu den primitiven Typen gehört.When overridden in a derived class, implements the IsPrimitive property and determines whether the Type is one of the primitive types.

(Geerbt von Type)
IsSubclassOf(Type)

Wird für unvollständige generische Typparameter nicht unterstützt.Not supported for incomplete generic type parameters.

IsValueTypeImpl()

Implementiert die IsValueType-Eigenschaft und bestimmt, ob Type ein Werttyp ist, also weder eine Klasse noch eine Schnittstelle.Implements the IsValueType property and determines whether the Type is a value type; that is, not a class or an interface.

(Geerbt von Type)
MakeArrayType()

Gibt den Typ eines eindimensionalen Arrays zurück, dessen Elementtyp der generische Typparameter ist.Returns the type of a one-dimensional array whose element type is the generic type parameter.

MakeArrayType(Int32)

Gibt den Typ eines Arrays mit der angegebenen Anzahl von Dimensionen zurück, dessen Elementtyp der generische Typparameter ist.Returns the type of an array whose element type is the generic type parameter, with the specified number of dimensions.

MakeByRefType()

Gibt ein Type-Objekt zurück, das den aktuellen generischen Typparameter darstellt, wenn dieser als ein Verweisparameter übergeben wird.Returns a Type object that represents the current generic type parameter when passed as a reference parameter.

MakeGenericType(Type[])

Ist bei unvollständigen generischen Typparametern ungültig.Not valid for incomplete generic type parameters.

MakePointerType()

Gibt ein Type-Objekt zurück, das einen Zeiger auf den aktuellen generischen Typparameter darstellt.Returns a Type object that represents a pointer to the current generic type parameter.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
SetBaseTypeConstraint(Type)

Legt den Basistyp fest, von dem ein Typ erben muss, um den Typparameter zu ersetzen.Sets the base type that a type must inherit in order to be substituted for the type parameter.

SetCustomAttribute(ConstructorInfo, Byte[])

Legt ein benutzerdefiniertes Attribut mithilfe eines angegebenen benutzerdefinierten Attribut-BLOBs fest.Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

Legt ein benutzerdefiniertes Attribut mithilfe eines benutzerdefinierten Attribut-Generators fest.Set a custom attribute using a custom attribute builder.

SetGenericParameterAttributes(GenericParameterAttributes)

Legt die Varianzmerkmale und speziellen Einschränkungen des generischen Parameters fest, z. B. die parameterlose Konstruktoreinschränkung.Sets the variance characteristics and special constraints of the generic parameter, such as the parameterless constructor constraint.

SetInterfaceConstraints(Type[])

Legt die Schnittstellen fest, die ein Typ implementieren muss, um den Typparameter zu ersetzen.Sets the interfaces a type must implement in order to be substituted for the type parameter.

ToString()

Gibt eine Zeichenfolgendarstellung des aktuellen generischen Typparameters zurück.Returns a string representation of the current generic type parameter.

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Geerbt von MemberInfo)
_MemberInfo.GetType()

Ruft ein Type-Objekt ab, das die MemberInfo-Klasse darstellt.Gets a Type object representing the MemberInfo class.

(Geerbt von MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können.Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Geerbt von MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Geerbt von MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Geerbt von MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Geerbt von Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können.Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Geerbt von Type)
_Type.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Geerbt von Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Geerbt von Type)
ICustomAttributeProvider.GetCustomAttributes(Boolean) (Geerbt von MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) (Geerbt von MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean) (Geerbt von MemberInfo)

Erweiterungsmethoden

GetCustomAttribute(MemberInfo, Type)

Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der für einen angegebenen Member angewendet wird.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der für einen angegebenen Member angewendet wird, und überprüft optional die Vorgänger dieses Members.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)

Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der für einen angegebenen Member angewendet wird.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der für einen angegebenen Member angewendet wird, und überprüft optional die Vorgänger dieses Members.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)

Ruft eine Auflistung benutzerdefinierter Attribute ab, die für einen angegebenen Member angewendet werden.Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Ruft eine Auflistung benutzerdefinierter Attribute ab, die für einen angegebenen Member angewendet werden, und überprüft optional die Vorgänger dieses Members.Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Ruft eine Auflistung benutzerdefinierter Attribute eines angegebenen Typs ab, die für eine angegebenen Member angewendet werden.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

Ruft eine Auflistung benutzerdefinierter Attribute eines angegebenen Typs ab, die für einen angegebenen Member angewendet werden, und überprüft optional die Vorgänger dieses Members.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)

Ruft eine Auflistung benutzerdefinierter Attribute eines angegebenen Typs ab, die für eine angegebenen Member angewendet werden.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

Ruft eine Auflistung benutzerdefinierter Attribute eines angegebenen Typs ab, die für einen angegebenen Member angewendet werden, und überprüft optional die Vorgänger dieses Members.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)

Gibt an, ob irgend welche benutzerdefinierten Attribute eines bestimmten Typs auf eines angegebenen Members angewendet werden.Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf einen angegebenen Member und optional auf dessen Vorgänger angewendet werden.Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetTypeInfo(Type)

Gibt die TypeInfo-Darstellung eines angegebenen Typs zurück.Returns the TypeInfo representation of the specified type.

GetMetadataToken(MemberInfo)

Ruft ein Metadatentoken für das angegebene Element ab, falls verfügbar.Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Gibt einen Wert zurück, der angibt, ob ein Metadatentoken für das angegebene Element verfügbar ist.Returns a value that indicates whether a metadata token is available for the specified member.

GetRuntimeEvent(Type, String)

Ruft ein Objekt ab, das das angegebene Ereignis darstellt.Retrieves an object that represents the specified event.

GetRuntimeEvents(Type)

Ruft eine Auflistung ab, die alle Ereignisse darstellt, die für einen bestimmten Typ definiert werden.Retrieves a collection that represents all the events defined on a specified type.

GetRuntimeField(Type, String)

Ruft ein Objekt ab, das ein bestimmtes Feld darstellt.Retrieves an object that represents a specified field.

GetRuntimeFields(Type)

Ruft eine Auflistung ab, die alle Felder darstellt, die für einen bestimmten Typ definiert werden.Retrieves a collection that represents all the fields defined on a specified type.

GetRuntimeMethod(Type, String, Type[])

Ruft ein Objekt ab, das eine angegebene Methode darstellt.Retrieves an object that represents a specified method.

GetRuntimeMethods(Type)

Ruft eine Auflistung ab, die alle Methoden darstellt, die für einen bestimmten Typ definiert werden.Retrieves a collection that represents all methods defined on a specified type.

GetRuntimeProperties(Type)

Ruft eine Auflistung ab, die alle Eigenschaften darstellt, die für einen bestimmten Typ definiert werden.Retrieves a collection that represents all the properties defined on a specified type.

GetRuntimeProperty(Type, String)

Ruft ein Objekt ab, das eine angegebene Eigenschaft darstellt.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)

Gilt für:

Siehe auch