TypeBuilder Klas

Definitie

Definieert en maakt nieuwe exemplaren van klassen tijdens runtime.

public ref class TypeBuilder sealed : Type, System::Runtime::InteropServices::_TypeBuilder
public ref class TypeBuilder sealed : System::Reflection::TypeInfo, System::Runtime::InteropServices::_TypeBuilder
public ref class TypeBuilder sealed : Type
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : System.Reflection.TypeInfo, System.Runtime.InteropServices._TypeBuilder
public sealed class TypeBuilder : Type
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type TypeBuilder = class
    inherit Type
    interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
    inherit Type
    interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
    inherit TypeInfo
    interface _TypeBuilder
type TypeBuilder = class
    inherit Type
Public NotInheritable Class TypeBuilder
Inherits Type
Implements _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Implements _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits Type
Overname
TypeBuilder
Overname
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een dynamische assembly definieert en gebruikt. De voorbeeldassembly bevat één type, MyDynamicTypedat een privéveld bevat, een eigenschap die het privéveld ophaalt en instelt, constructors die het privéveld initialiseren en een methode waarmee een door de gebruiker opgegeven getal wordt vermenigvuldigd met de waarde van het privéveld en het resultaat wordt geretourneerd.

using System;
using System.Reflection;
using System.Reflection.Emit;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* This code produces the following output:

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

Class DemoAssemblyBuilder

    Public Shared Sub Main()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

In het volgende codevoorbeeld ziet u hoe u dynamisch een type bouwt met behulp van TypeBuilder.

using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       mthdIL.Emit(OpCodes.Mul_Ovf_Un);

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

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

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

       mthdIL.Emit(OpCodes.Add_Ovf_Un);

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

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

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

       mthdIL.Emit(OpCodes.Ret);

       ivType = ivTypeBld.CreateType();

       return ivType;
    }

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

       IVType = DynamicDotProductGen();

           Console.WriteLine("---");

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

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

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

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

 _


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

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

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

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



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

Opmerkingen

Zie Aanvullende API-opmerkingen voor TypeBuilder voor meer informatie over deze API.

Velden

Name Description
UnspecifiedTypeSize

Geeft aan dat de totale grootte voor het type niet is opgegeven.

Eigenschappen

Name Description
Assembly

Haalt de dynamische assembly op die deze typedefinitie bevat.

AssemblyQualifiedName

Retourneert de volledige naam van dit type dat is gekwalificeerd door de weergavenaam van de assembly.

Attributes

Hiermee haalt u de kenmerken op die zijn gekoppeld aan de Type.

(Overgenomen van Type)
BaseType

Hiermee wordt het basistype van dit type opgehaald.

ContainsGenericParameters

Hiermee wordt een waarde opgehaald die aangeeft of het huidige Type object typeparameters bevat die niet zijn vervangen door specifieke typen.

(Overgenomen van Type)
CustomAttributes

Hiermee haalt u een verzameling op die de aangepaste kenmerken van dit lid bevat.

(Overgenomen van MemberInfo)
DeclaredConstructors

Hiermee haalt u een verzameling van de constructors op die door het huidige type zijn gedeclareerd.

(Overgenomen van TypeInfo)
DeclaredEvents

Hiermee haalt u een verzameling gebeurtenissen op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaredFields

Hiermee haalt u een verzameling van de velden op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaredMembers

Hiermee haalt u een verzameling van de leden op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaredMethods

Hiermee haalt u een verzameling van de methoden op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaredNestedTypes

Hiermee haalt u een verzameling van de geneste typen op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaredProperties

Hiermee haalt u een verzameling van de eigenschappen op die zijn gedefinieerd door het huidige type.

(Overgenomen van TypeInfo)
DeclaringMethod

Hiermee haalt u de methode op die de huidige algemene typeparameter heeft gedeclareerd.

DeclaringType

Retourneert het type dat dit type heeft gedeclareerd.

FullName

Hiermee wordt het volledige pad van dit type opgehaald.

GenericParameterAttributes

Hiermee wordt een waarde opgehaald die de covariantie en speciale beperkingen van de huidige algemene typeparameter aangeeft.

GenericParameterPosition

Hiermee haalt u de positie op van een typeparameter in de lijst met typeparameters van het algemene type dat de parameter heeft gedeclareerd.

GenericTypeArguments

Hiermee haalt u een matrix op van de algemene typeargumenten voor dit type.

(Overgenomen van Type)
GenericTypeParameters

Hiermee haalt u een matrix op van de algemene typeparameters van het huidige exemplaar.

(Overgenomen van TypeInfo)
GUID

Haalt de GUID van dit type op.

HasElementType

Hiermee wordt een waarde opgehaald die aangeeft of de huidige Type een ander type omvat of verwijst. Dat wil zeggen, of de huidige Type een matrix, een aanwijzer is of wordt doorgegeven door verwijzing.

(Overgenomen van Type)
ImplementedInterfaces

Hiermee haalt u een verzameling van de interfaces op die door het huidige type zijn geïmplementeerd.

(Overgenomen van TypeInfo)
IsAbstract

Hiermee wordt een waarde opgehaald die aangeeft of het Type abstract is en moet worden overschreven.

(Overgenomen van Type)
IsAnsiClass

Hiermee wordt een waarde opgehaald die aangeeft of het kenmerk AnsiClass tekenreeksindeling is geselecteerd voor de Type.

(Overgenomen van Type)
IsArray

Hiermee wordt een waarde opgehaald die aangeeft of het type een matrix is.

(Overgenomen van Type)
IsAutoClass

Hiermee wordt een waarde opgehaald die aangeeft of het kenmerk AutoClass tekenreeksindeling is geselecteerd voor de Type.

(Overgenomen van Type)
IsAutoLayout

Hiermee wordt een waarde opgehaald die aangeeft of de velden van het huidige type automatisch worden ingedeeld door de algemene taalruntime.

(Overgenomen van Type)
IsByRef

Hiermee wordt een waarde opgehaald die aangeeft of de Type waarde wordt doorgegeven door verwijzing.

(Overgenomen van Type)
IsByRefLike

Hiermee wordt een waarde opgehaald die aangeeft of het type een byref-achtige structuur is.

IsClass

Hiermee wordt een waarde opgehaald die aangeeft of het Type een klasse of een gemachtigde is. Dat wil zeggen, geen waardetype of interface.

(Overgenomen van Type)
IsCOMObject

Hiermee wordt een waarde opgehaald die aangeeft of het Type een COM-object is.

(Overgenomen van Type)
IsConstructedGenericType

Hiermee wordt een waarde opgehaald die aangeeft of dit object een samengesteld algemeen type vertegenwoordigt.

IsContextful

Hiermee wordt een waarde opgehaald die aangeeft of de Type host in een context kan worden gehost.

(Overgenomen van Type)
IsEnum

Hiermee wordt een waarde opgehaald die aangeeft of de huidige Type een opsomming vertegenwoordigt.

(Overgenomen van Type)
IsExplicitLayout

Hiermee wordt een waarde opgehaald die aangeeft of de velden van het huidige type zijn ingedeeld bij expliciet opgegeven offsets.

(Overgenomen van Type)
IsGenericMethodParameter

Hiermee wordt een waarde opgehaald die aangeeft of de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemene methode.

(Overgenomen van Type)
IsGenericParameter

Hiermee wordt een waarde opgehaald die aangeeft of het huidige type een algemene typeparameter is.

IsGenericType

Hiermee wordt een waarde opgehaald die aangeeft of het huidige type een algemeen type is.

IsGenericTypeDefinition

Hiermee wordt een waarde opgehaald die aangeeft of de huidige TypeBuilder een algemene typedefinitie vertegenwoordigt waaruit andere algemene typen kunnen worden samengesteld.

IsGenericTypeParameter

Hiermee wordt een waarde opgehaald die aangeeft of de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemeen type.

(Overgenomen van Type)
IsImport

Hiermee wordt een waarde opgehaald die aangeeft of er Type een ComImportAttribute kenmerk is toegepast, waarmee wordt aangegeven dat het is geïmporteerd uit een COM-typebibliotheek.

(Overgenomen van Type)
IsInterface

Hiermee wordt een waarde opgehaald die aangeeft of het Type een interface is, dat wil zeggen, geen klasse of een waardetype.

(Overgenomen van Type)
IsLayoutSequential

Hiermee wordt een waarde opgehaald die aangeeft of de velden van het huidige type opeenvolgend worden ingedeeld, in de volgorde waarin ze zijn gedefinieerd of verzonden naar de metagegevens.

(Overgenomen van Type)
IsMarshalByRef

Hiermee wordt een waarde opgehaald die aangeeft of de Type marshaled wordt doorverwijzing.

(Overgenomen van Type)
IsNested

Hiermee wordt een waarde opgehaald die aangeeft of het huidige Type object een type vertegenwoordigt waarvan de definitie is genest in de definitie van een ander type.

(Overgenomen van Type)
IsNestedAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de Type geneste en alleen zichtbaar is binnen een eigen assembly.

(Overgenomen van Type)
IsNestedFamANDAssem

Hiermee wordt een waarde opgehaald die aangeeft of de Type geneste en alleen zichtbaar is voor klassen die deel uitmaken van zowel een eigen familie als een eigen assembly.

(Overgenomen van Type)
IsNestedFamily

Hiermee wordt een waarde opgehaald die aangeeft of de Type geneste en alleen zichtbaar is binnen een eigen familie.

(Overgenomen van Type)
IsNestedFamORAssem

Hiermee wordt een waarde opgehaald die aangeeft of de Type geneste en alleen zichtbaar is voor klassen die deel uitmaken van een eigen familie of aan een eigen assembly.

(Overgenomen van Type)
IsNestedPrivate

Hiermee wordt een waarde opgehaald die aangeeft of de Type geneste en gedeclareerde privé is.

(Overgenomen van Type)
IsNestedPublic

Hiermee wordt een waarde opgehaald die aangeeft of een klasse is genest en openbaar is gedeclareerd.

(Overgenomen van Type)
IsNotPublic

Hiermee wordt een waarde opgehaald die aangeeft of de Type waarde niet openbaar is gedeclareerd.

(Overgenomen van Type)
IsPointer

Hiermee wordt een waarde opgehaald die aangeeft of de Type aanwijzer een aanwijzer is.

(Overgenomen van Type)
IsPrimitive

Hiermee wordt een waarde opgehaald die aangeeft of het Type een van de primitieve typen is.

(Overgenomen van Type)
IsPublic

Hiermee wordt een waarde opgehaald die aangeeft of het Type openbaar is gedeclareerd.

(Overgenomen van Type)
IsSealed

Hiermee wordt een waarde opgehaald die aangeeft of de Type verzegelde waarde is gedeclareerd.

(Overgenomen van Type)
IsSecurityCritical

Hiermee wordt een waarde opgehaald die aangeeft of het huidige type beveiligingskritiek of veilig-veilig is en daarom kritieke bewerkingen kan uitvoeren.

IsSecuritySafeCritical

Hiermee wordt een waarde opgehaald die aangeeft of het huidige type beveiligingsveilig is; dat wil gezegd, of het kritieke bewerkingen kan uitvoeren en toegankelijk is via transparante code.

IsSecurityTransparent

Hiermee wordt een waarde opgehaald die aangeeft of het huidige type transparant is en daarom geen kritieke bewerkingen kan uitvoeren.

IsSerializable

Hiermee wordt een waarde opgehaald die aangeeft of het Type binaire serializeerbaar is.

(Overgenomen van Type)
IsSignatureType

Hiermee wordt een waarde opgehaald die aangeeft of het type een handtekeningtype is.

(Overgenomen van Type)
IsSpecialName

Hiermee wordt een waarde opgehaald die aangeeft of het type een naam heeft waarvoor speciale verwerking is vereist.

(Overgenomen van Type)
IsSZArray

Definieert en maakt nieuwe exemplaren van klassen tijdens runtime.

IsTypeDefinition

Definieert en maakt nieuwe exemplaren van klassen tijdens runtime.

IsUnicodeClass

Hiermee wordt een waarde opgehaald die aangeeft of het kenmerk UnicodeClass tekenreeksindeling is geselecteerd voor de Type.

(Overgenomen van Type)
IsValueType

Hiermee wordt een waarde opgehaald die aangeeft of het Type een waardetype is.

(Overgenomen van Type)
IsVariableBoundArray

Definieert en maakt nieuwe exemplaren van klassen tijdens runtime.

IsVisible

Hiermee wordt een waarde opgehaald die aangeeft of de Type code buiten de assembly toegankelijk is.

(Overgenomen van Type)
MemberType

Hiermee wordt een MemberTypes waarde opgehaald die aangeeft dat dit lid een type of een genest type is.

(Overgenomen van Type)
MetadataToken

Hiermee haalt u een waarde op waarmee een metagegevenselement wordt geïdentificeerd.

(Overgenomen van MemberInfo)
Module

Haalt de dynamische module op die deze typedefinitie bevat.

Name

Haalt de naam van dit type op.

Namespace

Haalt de naamruimte op waarin dit TypeBuilder is gedefinieerd.

PackingSize

Haalt de verpakkingsgrootte van dit type op.

ReflectedType

Retourneert het type dat is gebruikt om dit type te verkrijgen.

Size

Hiermee haalt u de totale grootte van een type op.

StructLayoutAttribute

Hiermee wordt de StructLayoutAttribute indeling van het huidige type beschreven.

(Overgenomen van Type)
TypeHandle

Niet ondersteund in dynamische modules.

TypeInitializer

Hiermee haalt u de initialisatiefunctie voor het type op.

(Overgenomen van Type)
TypeToken

Retourneert het typetoken van dit type.

UnderlyingSystemType

Retourneert het onderliggende systeemtype voor dit TypeBuilder.

Methoden

Name Description
AddDeclarativeSecurity(SecurityAction, PermissionSet)

Voegt declaratieve beveiliging toe aan dit type.

AddInterfaceImplementation(Type)

Hiermee voegt u een interface toe die door dit type wordt geïmplementeerd.

AsType()

Retourneert het huidige type als een Type object.

(Overgenomen van TypeInfo)
CreateType()

Hiermee maakt u een Type object voor de klasse. Nadat u velden en methoden voor de klasse hebt gedefinieerd, CreateType wordt aangeroepen om het Type object te laden.

CreateTypeInfo()

Hiermee wordt een TypeInfo object opgehaald dat dit type vertegenwoordigt.

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

Voegt een nieuwe constructor toe aan het type, met de opgegeven kenmerken, handtekeningen en aangepaste modifiers.

DefineConstructor(MethodAttributes, CallingConventions, Type[])

Hiermee voegt u een nieuwe constructor toe aan het type, met de opgegeven kenmerken en handtekening.

DefineDefaultConstructor(MethodAttributes)

Definieert de parameterloze constructor. De constructor die hier is gedefinieerd, roept gewoon de parameterloze constructor van het bovenliggende element aan.

DefineEvent(String, EventAttributes, Type)

Voegt een nieuwe gebeurtenis toe aan het type, met de opgegeven naam, kenmerken en gebeurtenistype.

DefineField(String, Type, FieldAttributes)

Voegt een nieuw veld toe aan het type, met de opgegeven naam, kenmerken en veldtype.

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

Hiermee voegt u een nieuw veld toe aan het type, met de opgegeven naam, kenmerken, veldtype en aangepaste modifiers.

DefineGenericParameters(String[])

Hiermee definieert u de algemene typeparameters voor het huidige type, geeft u het aantal en de namen op en retourneert u een matrix met GenericTypeParameterBuilder objecten die kunnen worden gebruikt om de beperkingen in te stellen.

DefineInitializedData(String, Byte[], FieldAttributes)

Hiermee definieert u het geïnitialiseerde gegevensveld in de sectie .sdata van het pe-bestand (portable executable).

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

Voegt een nieuwe methode toe aan het type, met de opgegeven naam, methodekenmerken, aanroepende conventie, methodehandtekening en aangepaste modifiers.

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

Voegt een nieuwe methode toe aan het type, met de opgegeven naam, methodekenmerken, aanroepende conventie en methodehandtekening.

DefineMethod(String, MethodAttributes, CallingConventions)

Voegt een nieuwe methode toe aan het type, met de opgegeven naam, methodekenmerken en aanroepende conventie.

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

Voegt een nieuwe methode toe aan het type, met de opgegeven naam, methodekenmerken en methodehandtekening.

DefineMethod(String, MethodAttributes)

Voegt een nieuwe methode toe aan het type, met de opgegeven naam en methodekenmerken.

DefineMethodOverride(MethodInfo, MethodInfo)

Hiermee geeft u een bepaalde methodetekst op die een bepaalde methodedeclaratie implementeert, mogelijk met een andere naam.

DefineNestedType(String, TypeAttributes, Type, Int32)

Hiermee definieert u een genest type, op basis van de naam, kenmerken, de totale grootte van het type en het type dat het uitbreidt.

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

Hiermee definieert u een genest type, op basis van de naam, kenmerken, grootte en het type dat het uitbreidt.

DefineNestedType(String, TypeAttributes, Type, PackingSize)

Definieert een genest type, op basis van de naam, kenmerken, het type dat het uitbreidt en de verpakkingsgrootte.

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

Hiermee definieert u een genest type, op basis van de naam, kenmerken, het type dat het uitbreidt en de interfaces die worden geïmplementeerd.

DefineNestedType(String, TypeAttributes, Type)

Hiermee definieert u een genest type, op basis van de naam, kenmerken en het type dat het uitbreidt.

DefineNestedType(String, TypeAttributes)

Hiermee definieert u een genest type, op basis van de naam en kenmerken.

DefineNestedType(String)

Hiermee definieert u een geneste type, op basis van de naam.

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

Definieert een PInvoke methode op basis van de naam, de naam van het DLL-bestand waarin de methode wordt gedefinieerd, de kenmerken van de methode, de aanroepconventie van de methode, het retourtype van de methode, de typen van de parameters van de methode en de PInvoke vlaggen.

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

Definieert een PInvoke methode op basis van de naam, de naam van het DLL-bestand waarin de methode wordt gedefinieerd, de naam van het toegangspunt, de kenmerken van de methode, de aanroepconventie van de methode, het retourtype van de methode, de typen van de parameters van de methode en de PInvoke vlaggen.

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

Definieert een PInvoke methode op basis van de naam, de naam van het DLL-bestand waarin de methode is gedefinieerd, de naam van het toegangspunt, de kenmerken van de methode, de aanroepconventie van de methode, het retourtype van de methode, de typen van de parameters van de methode, de PInvoke vlaggen en aangepaste modifiers voor de parameters en het retourtype.

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

Voegt een nieuwe eigenschap toe aan het type, met de opgegeven naam, aanroepconventie, eigenschapshandtekening en aangepaste wijzigingsaanpassingen.

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

Voegt een nieuwe eigenschap toe aan het type, met de opgegeven naam, kenmerken, aanroepende conventie en eigenschapshandtekening.

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

Hiermee voegt u een nieuwe eigenschap toe aan het type, met de opgegeven naam, eigenschapshandtekening en aangepaste modifiers.

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

Voegt een nieuwe eigenschap toe aan het type, met de opgegeven naam en eigenschapshandtekening.

DefineTypeInitializer()

Hiermee definieert u de initialisatiefunctie voor dit type.

DefineUninitializedData(String, Int32, FieldAttributes)

Hiermee definieert u een niet-geïnitialiseerd gegevensveld in de .sdata sectie van het draagbare uitvoerbare (PE)-bestand.

Equals(Object)

Bepaalt of het onderliggende systeemtype van het huidige Type object hetzelfde is als het onderliggende systeemtype van het opgegeven Object.

(Overgenomen van Type)
Equals(Type)

Bepaalt of het onderliggende systeemtype van de huidige Type hetzelfde is als het onderliggende systeemtype van het opgegeven Type.

(Overgenomen van Type)
FindInterfaces(TypeFilter, Object)

Retourneert een matrix van Type objecten die een gefilterde lijst met interfaces vertegenwoordigen die zijn geïmplementeerd of overgenomen door de huidige Type.

(Overgenomen van Type)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

Retourneert een gefilterde matrix met MemberInfo objecten van het opgegeven lidtype.

(Overgenomen van Type)
GetArrayRank()

Hiermee haalt u het aantal dimensies in een matrix op.

(Overgenomen van Type)
GetAttributeFlagsImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de Attributes eigenschap en krijgt u een bitsgewijze combinatie van opsommingswaarden die de kenmerken aangeven die aan de Typeeigenschap zijn gekoppeld.

(Overgenomen van Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Zoekt naar een constructor waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

(Overgenomen van Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

Zoekt naar een constructor waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetConstructor(Type, ConstructorInfo)

Retourneert de constructor van het opgegeven samengestelde algemene type dat overeenkomt met de opgegeven constructor van de algemene typedefinitie.

GetConstructor(Type[])

Zoekt naar een constructor van een openbaar exemplaar waarvan de parameters overeenkomen met de typen in de opgegeven matrix.

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

Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar een constructor waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

(Overgenomen van Type)
GetConstructors()

Retourneert alle openbare constructors die zijn gedefinieerd voor de huidige Type.

(Overgenomen van Type)
GetConstructors(BindingFlags)

Retourneert een matrix met ConstructorInfo objecten die de openbare en niet-openbare constructors vertegenwoordigen die zijn gedefinieerd voor deze klasse, zoals opgegeven.

GetCustomAttributes(Boolean)

Retourneert alle aangepaste kenmerken die voor dit type zijn gedefinieerd.

GetCustomAttributes(Type, Boolean)

Retourneert alle aangepaste kenmerken van het huidige type dat kan worden toegewezen aan een opgegeven type.

GetCustomAttributesData()

Retourneert een lijst CustomAttributeData met objecten die gegevens vertegenwoordigen over de kenmerken die zijn toegepast op het doellid.

(Overgenomen van MemberInfo)
GetDeclaredEvent(String)

Retourneert een object dat de opgegeven gebeurtenis vertegenwoordigt die door het huidige type is gedeclareerd.

(Overgenomen van TypeInfo)
GetDeclaredField(String)

Retourneert een object dat het opgegeven veld vertegenwoordigt dat door het huidige type is gedeclareerd.

(Overgenomen van TypeInfo)
GetDeclaredMethod(String)

Retourneert een object dat de opgegeven methode vertegenwoordigt die door het huidige type is gedeclareerd.

(Overgenomen van TypeInfo)
GetDeclaredMethods(String)

Retourneert een verzameling die alle methoden bevat die zijn gedeclareerd voor het huidige type dat overeenkomt met de opgegeven naam.

(Overgenomen van TypeInfo)
GetDeclaredNestedType(String)

Retourneert een object dat het opgegeven geneste type vertegenwoordigt dat door het huidige type is gedeclareerd.

(Overgenomen van TypeInfo)
GetDeclaredProperty(String)

Retourneert een object dat de opgegeven eigenschap vertegenwoordigt die door het huidige type is gedeclareerd.

(Overgenomen van TypeInfo)
GetDefaultMembers()

Hiermee wordt gezocht naar de leden die zijn gedefinieerd voor de huidige Type waarvan DefaultMemberAttribute de set is ingesteld.

(Overgenomen van Type)
GetElementType()

Het aanroepen van deze methode genereert NotSupportedExceptionaltijd .

GetEnumName(Object)

Retourneert de naam van de constante met de opgegeven waarde voor het huidige opsommingstype.

(Overgenomen van Type)
GetEnumNames()

Retourneert de namen van de leden van het huidige opsommingstype.

(Overgenomen van Type)
GetEnumUnderlyingType()

Retourneert het onderliggende type van het huidige opsommingstype.

(Overgenomen van Type)
GetEnumValues()

Retourneert een matrix van de waarden van de constanten in het huidige opsommingstype.

(Overgenomen van Type)
GetEvent(String, BindingFlags)

Retourneert de gebeurtenis met de opgegeven naam.

GetEvent(String)

Retourneert het EventInfo object dat de opgegeven openbare gebeurtenis vertegenwoordigt.

(Overgenomen van Type)
GetEvents()

Retourneert de openbare gebeurtenissen die door dit type zijn gedeclareerd of overgenomen.

GetEvents(BindingFlags)

Retourneert de openbare en niet-openbare gebeurtenissen die door dit type worden gedeclareerd.

GetField(String, BindingFlags)

Retourneert het veld dat is opgegeven met de opgegeven naam.

GetField(String)

Hiermee wordt gezocht naar het openbare veld met de opgegeven naam.

(Overgenomen van Type)
GetField(Type, FieldInfo)

Retourneert het veld van het opgegeven samengestelde algemene type dat overeenkomt met het opgegeven veld van de algemene typedefinitie.

GetFields()

Retourneert alle openbare velden van de huidige Type.

(Overgenomen van Type)
GetFields(BindingFlags)

Retourneert de openbare en niet-openbare velden die door dit type worden gedeclareerd.

GetGenericArguments()

Retourneert een matrix met Type objecten die de typeargumenten van een algemeen type of de typeparameters van een algemene typedefinitie vertegenwoordigen.

GetGenericParameterConstraints()

Retourneert een matrix met Type objecten die de beperkingen voor de huidige algemene typeparameter vertegenwoordigen.

(Overgenomen van Type)
GetGenericTypeDefinition()

Retourneert een Type object dat een algemene typedefinitie vertegenwoordigt waaruit het huidige type kan worden verkregen.

GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Type)
GetInterface(String, Boolean)

Retourneert de interface die door deze klasse is geïmplementeerd (direct of indirect) met de volledig gekwalificeerde naam die overeenkomt met de opgegeven interfacenaam.

GetInterface(String)

Zoekt naar de interface met de opgegeven naam.

(Overgenomen van Type)
GetInterfaceMap(Type)

Retourneert een interfacetoewijzing voor de aangevraagde interface.

GetInterfaces()

Retourneert een matrix van alle interfaces die op dit type en de basistypen zijn geïmplementeerd.

GetMember(String, BindingFlags)

Hiermee wordt gezocht naar de opgegeven leden met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetMember(String, MemberTypes, BindingFlags)

Retourneert alle openbare en niet-openbare leden die door dit type zijn gedeclareerd of overgenomen, zoals opgegeven.

GetMember(String)

Hiermee wordt gezocht naar de openbare leden met de opgegeven naam.

(Overgenomen van Type)
GetMembers()

Retourneert alle openbare leden van de huidige Type.

(Overgenomen van Type)
GetMembers(BindingFlags)

Retourneert de leden voor de openbare en niet-openbare leden die door dit type zijn gedeclareerd of overgenomen.

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

Zoekt naar de opgegeven methode waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

(Overgenomen van Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Zoekt naar de opgegeven methode waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetMethod(String, BindingFlags)

Zoekt naar de opgegeven methode met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Zoekt naar de opgegeven methode waarvan de parameters overeenkomen met het opgegeven algemene aantal parameters, argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

(Overgenomen van Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

Zoekt naar de opgegeven methode waarvan de parameters overeenkomen met het opgegeven algemene aantal parameters, argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetMethod(String, Int32, Type[], ParameterModifier[])

Zoekt naar de opgegeven openbare methode waarvan de parameters overeenkomen met het opgegeven algemene aantal parameters, argumenttypen en modifiers.

(Overgenomen van Type)
GetMethod(String, Int32, Type[])

Zoekt naar de opgegeven openbare methode waarvan de parameters overeenkomen met het opgegeven algemene aantal parameters en argumenttypen.

(Overgenomen van Type)
GetMethod(String, Type[], ParameterModifier[])

Zoekt naar de opgegeven openbare methode waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers.

(Overgenomen van Type)
GetMethod(String, Type[])

Zoekt naar de opgegeven openbare methode waarvan de parameters overeenkomen met de opgegeven argumenttypen.

(Overgenomen van Type)
GetMethod(String)

Zoekt naar de openbare methode met de opgegeven naam.

(Overgenomen van Type)
GetMethod(Type, MethodInfo)

Retourneert de methode van het opgegeven samengestelde algemene type dat overeenkomt met de opgegeven methode van de algemene typedefinitie.

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

Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar de opgegeven methode waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

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

Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar de opgegeven methode waarvan de parameters overeenkomen met het opgegeven algemene aantal parameters, argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen en de opgegeven aanroepconventie.

(Overgenomen van Type)
GetMethods()

Retourneert alle openbare methoden van de huidige Type.

(Overgenomen van Type)
GetMethods(BindingFlags)

Retourneert alle openbare en niet-openbare methoden die door dit type zijn gedeclareerd of overgenomen, zoals opgegeven.

GetNestedType(String, BindingFlags)

Retourneert de openbare en niet-openbare geneste typen die door dit type worden gedeclareerd.

GetNestedType(String)

Hiermee wordt gezocht naar het openbare geneste type met de opgegeven naam.

(Overgenomen van Type)
GetNestedTypes()

Retourneert de openbare typen die zijn genest in de huidige Type.

(Overgenomen van Type)
GetNestedTypes(BindingFlags)

Retourneert de openbare en niet-openbare geneste typen die door dit type worden gedeclareerd of overgenomen.

GetProperties()

Retourneert alle openbare eigenschappen van de huidige Type.

(Overgenomen van Type)
GetProperties(BindingFlags)

Retourneert alle openbare en niet-openbare eigenschappen die door dit type zijn gedeclareerd of overgenomen, zoals opgegeven.

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

Zoekt naar de opgegeven eigenschap waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetProperty(String, BindingFlags)

Hiermee wordt gezocht naar de opgegeven eigenschap met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetProperty(String, Type, Type[], ParameterModifier[])

Zoekt naar de opgegeven openbare eigenschap waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers.

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

Zoekt naar de opgegeven openbare eigenschap waarvan de parameters overeenkomen met de opgegeven argumenttypen.

(Overgenomen van Type)
GetProperty(String, Type)

Zoekt naar de openbare eigenschap met de opgegeven naam en retourtype.

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

Zoekt naar de opgegeven openbare eigenschap waarvan de parameters overeenkomen met de opgegeven argumenttypen.

(Overgenomen van Type)
GetProperty(String)

Hiermee wordt gezocht naar de openbare eigenschap met de opgegeven naam.

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

Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar de opgegeven eigenschap waarvan de parameters overeenkomen met de opgegeven argumenttypen en modifiers, met behulp van de opgegeven bindingsbeperkingen.

(Overgenomen van Type)
GetType()

Haalt de huidige Typeop.

(Overgenomen van Type)
GetTypeCodeImpl()

Retourneert de onderliggende typecode van dit Type exemplaar.

(Overgenomen van Type)
HasElementTypeImpl()

Wanneer de eigenschap in een afgeleide klasse wordt overschreven, implementeert u de HasElementType eigenschap en bepaalt u of de huidige Type het type omvat of verwijst naar een ander type. Dat wil gezegd, of de huidige Type een matrix, een aanwijzer is of wordt doorgegeven door verwijzing.

(Overgenomen van Type)
HasSameMetadataDefinitionAs(MemberInfo)

Definieert en maakt nieuwe exemplaren van klassen tijdens runtime.

(Overgenomen van MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

Roept het opgegeven lid aan met behulp van de opgegeven bindingsbeperkingen en overeenkomend met de opgegeven argumentenlijst en cultuur.

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

Roept het opgegeven lid aan. De methode die moet worden aangeroepen, moet toegankelijk zijn en de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst, onder de beperkingen van de opgegeven binder- en aanroepkenmerken.

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

Roept het opgegeven lid aan met behulp van de opgegeven bindingsbeperkingen en overeenkomend met de opgegeven argumentenlijst.

(Overgenomen van Type)
IsArrayImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de IsArray eigenschap en bepaalt u of het Type een matrix is.

(Overgenomen van Type)
IsAssignableFrom(Type)

Hiermee wordt een waarde opgehaald die aangeeft of een opgegeven Type kan worden toegewezen aan dit object.

IsAssignableFrom(TypeInfo)

Hiermee wordt een waarde opgehaald die aangeeft of een opgegeven TypeInfo object kan worden toegewezen aan dit object.

IsByRefImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de IsByRef eigenschap en bepaalt u of de Type eigenschap wordt doorgegeven door verwijzing.

(Overgenomen van Type)
IsCOMObjectImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de IsCOMObject eigenschap en bepaalt u of het Type een COM-object is.

(Overgenomen van Type)
IsContextfulImpl()

Implementeert de IsContextful eigenschap en bepaalt of de Type eigenschap in een context kan worden gehost.

(Overgenomen van Type)
IsCreated()

Retourneert een waarde die aangeeft of het huidige dynamische type is gemaakt.

IsDefined(Type, Boolean)

Bepaalt of een aangepast kenmerk wordt toegepast op het huidige type.

IsEnumDefined(Object)

Retourneert een waarde die aangeeft of de opgegeven waarde bestaat in het huidige opsommingstype.

(Overgenomen van Type)
IsEquivalentTo(Type)

Bepaalt of twee COM-typen dezelfde identiteit hebben en in aanmerking komen voor gelijkwaardigheid van het type.

(Overgenomen van Type)
IsInstanceOfType(Object)

Bepaalt of het opgegeven object een exemplaar van de huidige Typeis.

(Overgenomen van Type)
IsMarshalByRefImpl()

Implementeert de IsMarshalByRef eigenschap en bepaalt of de Type marshaled wordt door verwijzing.

(Overgenomen van Type)
IsPointerImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de IsPointer eigenschap en bepaalt u of de Type aanwijzer een aanwijzer is.

(Overgenomen van Type)
IsPrimitiveImpl()

Wanneer deze wordt overschreven in een afgeleide klasse, implementeert u de IsPrimitive eigenschap en bepaalt u of het Type een van de primitieve typen is.

(Overgenomen van Type)
IsSubclassOf(Type)

Bepaalt of dit type is afgeleid van een opgegeven type.

IsValueTypeImpl()

Hiermee wordt de IsValueType eigenschap geïmplementeerd en wordt bepaald of het Type een waardetype is. Dat wil wel, geen klasse of interface.

(Overgenomen van Type)
MakeArrayType()

Retourneert een object dat een Type eendimensionale matrix van het huidige type vertegenwoordigt, met een ondergrens van nul.

MakeArrayType(Int32)

Retourneert een Type object dat een matrix van het huidige type vertegenwoordigt, met het opgegeven aantal dimensies.

MakeByRefType()

Retourneert een Type-object dat het huidige type vertegenwoordigt wanneer deze wordt doorgegeven als een parameter ref (ByRef in Visual Basic).

MakeGenericType(Type[])

Vervangt de elementen van een matrix met typen voor de typeparameters van de huidige algemene typedefinitie en retourneert het resulterende samengestelde type.

MakePointerType()

Hiermee wordt een Type object geretourneerd dat het type van een niet-beheerde aanwijzer aangeeft aan het huidige type.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SetCustomAttribute(ConstructorInfo, Byte[])

Hiermee stelt u een aangepast kenmerk in met behulp van een opgegeven aangepaste kenmerk-blob.

SetCustomAttribute(CustomAttributeBuilder)

Stel een aangepast kenmerk in met behulp van een opbouwfunctie voor aangepaste kenmerken.

SetParent(Type)

Hiermee stelt u het basistype van het type dat momenteel wordt gebouwd.

ToString()

Retourneert de naam van het type, met uitzondering van de naamruimte.

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van MemberInfo)
_MemberInfo.GetType()

Hiermee haalt u een Type object op dat de MemberInfo klasse vertegenwoordigt.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Type)
_Type.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Type)
_TypeBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

_TypeBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

_TypeBuilder.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

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

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

IReflectableType.GetTypeInfo()

Retourneert een weergave van het huidige type als een TypeInfo object.

(Overgenomen van TypeInfo)

Extensiemethoden

Name Description
GetCustomAttribute(MemberInfo, Type, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute(MemberInfo, Type)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttribute<T>(MemberInfo, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute<T>(MemberInfo)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo)

Hiermee haalt u een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid.

GetCustomAttributes<T>(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes<T>(MemberInfo)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetRuntimeEvent(Type, String)

Hiermee wordt een object opgehaald dat de opgegeven gebeurtenis vertegenwoordigt.

GetRuntimeEvents(Type)

Hiermee haalt u een verzameling op die alle gebeurtenissen vertegenwoordigt die zijn gedefinieerd voor een opgegeven type.

GetRuntimeField(Type, String)

Hiermee wordt een object opgehaald dat een opgegeven veld vertegenwoordigt.

GetRuntimeFields(Type)

Hiermee haalt u een verzameling op die alle velden vertegenwoordigt die zijn gedefinieerd voor een opgegeven type.

GetRuntimeInterfaceMap(TypeInfo, Type)

Retourneert een interfacetoewijzing voor het opgegeven type en de opgegeven interface.

GetRuntimeMethod(Type, String, Type[])

Hiermee haalt u een object op dat een opgegeven methode vertegenwoordigt.

GetRuntimeMethods(Type)

Hiermee haalt u een verzameling op die alle methoden vertegenwoordigt die zijn gedefinieerd voor een opgegeven type.

GetRuntimeProperties(Type)

Hiermee haalt u een verzameling op die alle eigenschappen vertegenwoordigt die zijn gedefinieerd voor een opgegeven type.

GetRuntimeProperty(Type, String)

Hiermee wordt een object opgehaald dat een opgegeven eigenschap vertegenwoordigt.

GetTypeInfo(Type)

Retourneert de TypeInfo weergave van het opgegeven type.

IsDefined(MemberInfo, Type, Boolean)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid, en eventueel toegepast op de bovenliggende kenmerken.

IsDefined(MemberInfo, Type)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid.

Van toepassing op

Zie ook