Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ConstructorBuilder-Klasse

 

Definiert einen Konstruktor einer dynamischen Klasse und stellt diesen dar.

Namespace:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Reflection.MemberInfo
    System.Reflection.MethodBase
      System.Reflection.ConstructorInfo
        System.Reflection.Emit.ConstructorBuilder

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class ConstructorBuilder : ConstructorInfo, _ConstructorBuilder

NameBeschreibung
System_CAPS_pubpropertyAttributes

Ruft die Attribute für diesen Konstruktor ab.(Überschreibt MethodBase.Attributes.)

System_CAPS_pubpropertyCallingConvention

Ruft einen CallingConventions-Wert ab, der davon abhängt, ob der deklarierende Typ generisch ist.(Überschreibt MethodBase.CallingConvention.)

System_CAPS_pubpropertyContainsGenericParameters

Ruft einen Wert, der angibt, ob die generische Methode nicht zugewiesene generische Typparameter enthält.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyCustomAttributes

Ruft eine Auflistung, die benutzerdefinierten Attribute des Elements enthält.(Geerbt von „MemberInfo“.)

System_CAPS_pubpropertyDeclaringType

Ruft einen Verweis auf das Type-Objekt für den Typ ab, der diesen Member deklariert.(Überschreibt MemberInfo.DeclaringType.)

System_CAPS_pubpropertyInitLocals

Ruft die Information ab, ob die lokalen Variablen in diesem Konstruktor mit 0 (null) initialisiert werden sollen, oder legt diese Information fest.

System_CAPS_pubpropertyIsAbstract

Ruft einen Wert, der angibt, ob die Methode abstrakt ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsAssembly

Ruft einen Wert, der angibt, ob die potenzielle Sichtbarkeit dieser Methode oder dieses Konstruktors beschriebenen MethodAttributes.Assembly; also die Methode oder der Konstruktor wird sichtbar für andere Typen in derselben Assembly und ist nicht sichtbar, abgeleitete Typen außerhalb der Assembly.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsConstructor

Ruft einen Wert, der angibt, ob die Methode ein Konstruktor ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsFamily

Ruft einen Wert, der angibt, ob die Sichtbarkeit dieser Methode oder der Konstruktor beschriebenen MethodAttributes.Family; die Methode oder der Konstruktor ist nur innerhalb der Klasse und den abgeleiteten Klassen sichtbar.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsFamilyAndAssembly

Ruft einen Wert, der angibt, ob die Sichtbarkeit dieser Methode oder der Konstruktor beschriebenen MethodAttributes.FamANDAssem; also die Methode oder der Konstruktor kann aufgerufen werden von abgeleiteten Klassen, jedoch nur, wenn sie sich in derselben Assembly befinden.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsFamilyOrAssembly

Ruft einen Wert, der angibt, ob die potenzielle Sichtbarkeit dieser Methode oder dieses Konstruktors beschriebenen MethodAttributes.FamORAssem; das heißt, die Methode oder der Konstruktor kann aufgerufen werden von abgeleiteten Klassen unabhängig von ihrer Position und von Klassen in derselben Assembly.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsFinal

Ruft einen Wert, der angibt, ob diese Methode final.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsGenericMethod

Ruft einen Wert, der angibt, ob die Methode generisch ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsGenericMethodDefinition

Ruft einen Wert, der angibt, ob die Methode eine generische Methodendefinition ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsHideBySig

Ruft einen Wert, der angibt, ob nur ein Mitglied derselben Art mit einer identischen Signatur in der abgeleiteten Klasse ausgeblendet wird.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsPrivate

Ruft einen Wert, der angibt, ob dieser Member privat ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsPublic

Ruft einen Wert, der angibt, ob dies eine öffentliche Methode ist.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsSecurityCritical

Ruft einen Wert, der angibt, ob die aktuelle Methode oder der Konstruktor der aktuellen Vertrauensebene sicherheitstransparent oder sicherheitsrelevant und sicher zugänglich ist und daher wichtige Vorgänge ausführen darf.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsSecuritySafeCritical

Ruft einen Wert, der angibt, ob die aktuelle Methode oder der Konstruktor auf der aktuellen Vertrauensebene sicherheitsrelevant und sicher zugänglich ist. also ob er wichtige Vorgänge ausführen darf und ob von transparentem Code zugegriffen werden kann.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsSecurityTransparent

Ruft einen Wert, der angibt, ob die aktuelle Methode oder der Konstruktor transparent an ist der aktuellen Vertrauensebene und daher wichtige Vorgänge ausführen kann.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsSpecialName

Ruft einen Wert, der angibt, ob diese Methode einen besonderen Namen hat.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsStatic

Ruft einen Wert, der angibt, ob die Methode static.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyIsVirtual

Ruft einen Wert, der angibt, ob die Methode virtual.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyMemberType

Ruft ein MemberTypes Wert, der angibt, dass dieser Member ein Konstruktor ist.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubpropertyMetadataToken

Ruft einen Wert, der ein Metadatenelement identifiziert.(Geerbt von „MemberInfo“.)

System_CAPS_pubpropertyMethodHandle

Ruft das interne Handle für die Methode ab. Verwenden Sie dieses Handle, um auf das zugrunde liegende Metadatenhandle zuzugreifen.(Überschreibt MethodBase.MethodHandle.)

System_CAPS_pubpropertyMethodImplementationFlags

Ruft die MethodImplAttributes Flags, die die Attribute der Implementierung einer Methode angeben.(Geerbt von „MethodBase“.)

System_CAPS_pubpropertyModule

Ruft das dynamische Modul ab, in dem dieser Konstruktor definiert ist.(Überschreibt MemberInfo.Module.)

System_CAPS_pubpropertyName

Ruft den Namen des Konstruktors ab.(Überschreibt MemberInfo.Name.)

System_CAPS_pubpropertyReflectedType

Enthält einen Verweis auf das Type-Objekt, aus dem dieses Objekt abgerufen wurde.(Überschreibt MemberInfo.ReflectedType.)

System_CAPS_pubpropertyReturnType

Veraltet. Ruft null ab.

System_CAPS_pubpropertySignature

Ruft die Signatur des Felds in Form einer Zeichenfolge ab.

NameBeschreibung
System_CAPS_pubmethodAddDeclarativeSecurity(SecurityAction, PermissionSet)

Fügt diesem Konstruktor deklarative Sicherheit hinzu.

System_CAPS_pubmethodDefineParameter(Int32, ParameterAttributes, String)

Definiert einen Parameter dieses Konstruktors.

System_CAPS_pubmethodEquals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubmethodGetCustomAttributes(Boolean)

Gibt alle benutzerdefinierten Attribute zurück, die für diesen Konstruktor definiert sind.(Überschreibt MemberInfo.GetCustomAttributes(Boolean).)

System_CAPS_pubmethodGetCustomAttributes(Type, Boolean)

Gibt die benutzerdefinierten Attribute zurück, die durch den angegebenen Typ identifiziert werden.(Überschreibt MemberInfo.GetCustomAttributes(Type, Boolean).)

System_CAPS_pubmethodGetCustomAttributesData()

Gibt eine Liste von CustomAttributeData -Objekten, die Daten zu den Attributen, die für das Ziel übernommen wurden darstellen.(Geerbt von „MemberInfo“.)

System_CAPS_pubmethodGetGenericArguments()

Gibt ein Array von Type-Objekten zurück, die die Typargumente einer generischen Methode oder die Typparameter einer generischen Methodendefinition darstellen.(Geerbt von „MethodBase“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubmethodGetILGenerator()

Ruft einen ILGenerator für diesen Konstruktor ab.

System_CAPS_pubmethodGetILGenerator(Int32)

Ruft ein ILGenerator-Objekt mit der angegebenen MSIL-Streamgröße ab, mit dem ein Methodentext für diesen Konstruktor erstellt werden kann.

System_CAPS_pubmethodGetMethodBody()

Ruft beim Überschreiben in einer abgeleiteten Klasse eine MethodBody -Objekt, das Zugriff auf den MSIL-Stream, lokale Variablen und Ausnahmen für die aktuelle Methode ermöglicht.(Geerbt von „MethodBase“.)

System_CAPS_pubmethodGetMethodImplementationFlags()

Gibt die Methodenimplementierungsflags für diesen Konstruktor zurück.(Überschreibt MethodBase.GetMethodImplementationFlags().)

System_CAPS_pubmethodGetModule()

Gibt einen Verweis auf das Modul zurück, das diesen Konstruktor enthält.

System_CAPS_pubmethodGetParameters()

Gibt den Parameter dieses Konstruktors zurück.(Überschreibt MethodBase.GetParameters().)

System_CAPS_pubmethodGetToken()

Gibt das MethodToken zurück, das das Token für diesen Konstruktor darstellt.

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodInvoke(BindingFlags, Binder, Object[], CultureInfo)

Ruft den von dieser Instanz dynamisch reflektierten Konstruktor für das angegebene Objekt auf und übergibt dabei die angegebenen Parameter unter den Einschränkungen des angegebenen Binders.(Überschreibt ConstructorInfo.Invoke(BindingFlags, Binder, Object[], CultureInfo).)

System_CAPS_pubmethodInvoke(Object, BindingFlags, Binder, Object[], CultureInfo)

Ruft den Konstruktor, der von dieser Instanz reflektiert wird, mit den angegebenen Argumenten gemäß den Einschränkung des angegebenen Binder-Elements dynamisch ab.(Überschreibt MethodBase.Invoke(Object, BindingFlags, Binder, Object[], CultureInfo).)

System_CAPS_pubmethodInvoke(Object, Object[])

Ruft die Methode oder der Konstruktor, die durch die aktuelle Instanz, die mit den angegebenen Parametern dargestellt.(Geerbt von „MethodBase“.)

System_CAPS_pubmethodInvoke(Object[])

Ruft den Konstruktor, der von der Instanz, die die angegebenen Parameter Standardwerte für die Parameter, die nicht häufig verwendet reflektiert.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubmethodIsDefined(Type, Boolean)

Überprüft, ob der Typ des angegebenen benutzerdefinierten Attributs definiert ist.(Überschreibt MemberInfo.IsDefined(Type, Boolean).)

System_CAPS_pubmethodSetCustomAttribute(ConstructorInfo, Byte[])

Legt ein benutzerdefiniertes Attribut mithilfe eines angegebenen benutzerdefinierten Attribut-BLOBs fest.

System_CAPS_pubmethodSetCustomAttribute(CustomAttributeBuilder)

Legt ein benutzerdefiniertes Attribut mithilfe eines benutzerdefinierten Attribut-Generators fest.

System_CAPS_pubmethodSetImplementationFlags(MethodImplAttributes)

Legt die Methodenimplementierungsflags für diesen Konstruktor fest.

System_CAPS_pubmethodSetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>)

Erstellt den Text des Konstruktors unter Verwendung eines angegebenen Bytearrays von MSIL-Anweisungen (Microsoft Intermediate Language).

System_CAPS_pubmethodSetSymCustomAttribute(String, Byte[])

Legt das benutzerdefinierte Attribut dieses Konstruktors fest, das Symbolinformationen zugeordnet ist.

System_CAPS_pubmethodToString()

Gibt diese ConstructorBuilder-Instanz als String zurück.(Überschreibt Object.ToString().)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorBuilder.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.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorBuilder.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

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

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.GetType()

Ruft ein Type-Objekt ab, das den ConstructorInfo-Typ darstellt.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.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.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „ConstructorInfo“.)

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

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.Invoke_2(Object, BindingFlags, Binder, Object[], CultureInfo)

Ermöglicht COM-Objekten mit versionsunabhängigen Zugriff auf die MethodBase.Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) Methode.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.Invoke_3(Object, Object[])

Ermöglicht COM-Objekten mit versionsunabhängigen Zugriff auf die MethodBase.Invoke(Object, Object[]) Methode.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.Invoke_4(BindingFlags, Binder, Object[], CultureInfo)

Ermöglicht COM-Objekten mit versionsunabhängigen Zugriff auf die ConstructorInfo.Invoke(BindingFlags, Binder, Object[], CultureInfo) Methode.(Geerbt von „ConstructorInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ConstructorInfo.Invoke_5(Object[])

Ermöglicht COM-Objekten mit versionsunabhängigen Zugriff auf die ConstructorInfo.Invoke(Object[]) Methode.(Geerbt von „ConstructorInfo“.)

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „MemberInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetType()

Ruft ein Type Objekt, darstellt, die MemberInfo Klasse.(Geerbt von „MemberInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_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.(Geerbt von „MemberInfo“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „MemberInfo“.)

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

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „MemberInfo“.)

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MethodBase.GetType()

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.GetType.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MethodBase.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.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MethodBase.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „MethodBase“.)

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

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsAbstract

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsAbstract.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsAssembly

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsAssembly.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsConstructor

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsConstructor.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsFamily

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsFamily.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsFamilyAndAssembly

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsFamilyAndAssembly.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsFamilyOrAssembly

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsFamilyOrAssembly.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsFinal

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsFinal.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsHideBySig

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsHideBySig.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsPrivate

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsPrivate.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsPublic

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsPublic.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsSpecialName

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsSpecialName.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsStatic

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsStatic.(Geerbt von „MethodBase“.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty_MethodBase.IsVirtual

Eine Beschreibung dieses Elements finden Sie unter _MethodBase.IsVirtual.(Geerbt von „MethodBase“.)

NameBeschreibung
System_CAPS_pubmethodGetCustomAttribute(Type)

Überladen. Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs, der auf einen bestimmten Member angewendet wird.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute(Type, Boolean)

Überladen. Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs, die auf einen bestimmten Member angewendet wird, und optional untersucht die übergeordneten Elementen dieses Elements ab.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute<T>()

Überladen. Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs, der auf einen bestimmten Member angewendet wird.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute<T>(Boolean)

Überladen. Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs, die auf einen bestimmten Member angewendet wird, und optional untersucht die übergeordneten Elementen dieses Elements ab.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes()

Überladen. Ruft eine Auflistung von benutzerdefinierten Attributen, die auf einen bestimmten Member angewendet werden.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes(Type)

Überladen. Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs, die auf einen bestimmten Member angewendet werden.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes<T>(Boolean)

Überladen. Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs, die auf einen bestimmten Member angewendet werden, und optional die übergeordneten Elementen dieses Elements untersucht.(Definiert durch CustomAttributeExtensions.)

System_CAPS_pubmethodIsDefined(Type)

Überladen. Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf einen bestimmten Member angewendet werden.(Definiert durch CustomAttributeExtensions.)

ConstructorBuilder wird verwendet, um einen Konstruktor in Microsoft intermediate Language (MSIL), einschließlich Namen, Attribute, Signatur und Konstruktortext vollständig zu beschreiben. Hiermit wird zusammen mit der TypeBuilder Klasse zum Erstellen von Klassen zur Laufzeit. Rufen Sie DefineConstructor zum Abrufen einer Instanz von ConstructorBuilder.

Wenn Sie keinen Konstruktor für den dynamischen Typ definieren, wird automatisch ein Standardkonstruktor bereitgestellt, und der Standardkonstruktor der Basisklasse aufgerufen.

Bei Verwendung von ConstructorBuilder um einen Konstruktor für den dynamischen Typ definieren, der ein Standardkonstruktor wird nicht bereitgestellt. Sie haben die folgenden Optionen zum Bereitstellen eines Standardkonstruktors zusätzlich zu dem definierten Konstruktor:

  • Wenn Sie einen Standardkonstruktor, der einfach den Standardkonstruktor der Basisklasse aufruft benötigen, können Sie die TypeBuilder.DefineDefaultConstructor Methode zum Erstellen einer (und optional den Zugriff einschränken, damit). Keine Implementierung für diesen Standardkonstruktor bereit. Wenn Sie dies tun, wird eine Ausnahme ausgelöst, wenn Sie versuchen, mithilfe des Konstruktors. Wird keine Ausnahme ausgelöst, wenn die TypeBuilder.CreateType Methode wird aufgerufen.

  • Wenn Sie einen Standardkonstruktor, der nicht einfach den Standardkonstruktor der Basisklasse aufruft oder einen anderen Konstruktor aufruft, etwas die Basisklasse oder, die vollständig ist, müssen Sie die TypeBuilder.DefineConstructor Methode zum Erstellen einer ConstructorBuilder, und eine eigene Implementierung bereitstellen.

Das folgende Codebeispiel veranschaulicht die kontextabhängige Verwendung von einem ConstructorBuilder.


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

class TestCtorBuilder {

  	public static Type DynamicPointTypeGen() {

	   Type pointType = null;
	   Type[] ctorParams = new Type[] {typeof(int),
					    typeof(int),
					    typeof(int)};

	   AppDomain myDomain = Thread.GetDomain();
	   AssemblyName myAsmName = new AssemblyName();
	   myAsmName.Name = "MyDynamicAssembly";

	   AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
					  myAsmName, 
					  AssemblyBuilderAccess.RunAndSave);

   	   ModuleBuilder pointModule = myAsmBuilder.DefineDynamicModule("PointModule",
									"Point.dll");

	   TypeBuilder pointTypeBld = pointModule.DefineType("Point",
						              TypeAttributes.Public);

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


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

	   ConstructorBuilder pointCtor = pointTypeBld.DefineConstructor(
					  MethodAttributes.Public,
					  CallingConventions.Standard,
					  ctorParams);
	   ILGenerator ctorIL = pointCtor.GetILGenerator();

	   // NOTE: ldarg.0 holds the "this" reference - ldarg.1, ldarg.2, and ldarg.3
	   // hold the actual passed parameters. ldarg.0 is used by instance methods
	   // to hold a reference to the current calling object instance. Static methods
	   // do not use arg.0, since they are not instantiated and hence no reference
	   // is needed to distinguish them. 

           ctorIL.Emit(OpCodes.Ldarg_0);

	   // Here, we wish to create an instance of System.Object by invoking its
  	   // constructor, as specified above.

           ctorIL.Emit(OpCodes.Call, objCtor);

	   // Now, we'll load the current instance ref in arg 0, along
	   // with the value of parameter "x" stored in arg 1, into stfld.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_1);
           ctorIL.Emit(OpCodes.Stfld, xField); 

	   // Now, we store arg 2 "y" in the current instance with stfld.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_2);
           ctorIL.Emit(OpCodes.Stfld, yField); 

	   // Last of all, arg 3 "z" gets stored in the current instance.

           ctorIL.Emit(OpCodes.Ldarg_0);
           ctorIL.Emit(OpCodes.Ldarg_3);
           ctorIL.Emit(OpCodes.Stfld, zField); 

           // Our work complete, we return.

	   ctorIL.Emit(OpCodes.Ret); 

	   // Now, let's create three very simple methods so we can see our fields.

	   string[] mthdNames = new string[] {"GetX", "GetY", "GetZ"}; 

           foreach (string mthdName in mthdNames) {
              MethodBuilder getFieldMthd = pointTypeBld.DefineMethod(
				           mthdName, 
				           MethodAttributes.Public,
                                           typeof(int), 
                                           null);
	      ILGenerator mthdIL = getFieldMthd.GetILGenerator();

	      mthdIL.Emit(OpCodes.Ldarg_0);
  	      switch (mthdName) {
	         case "GetX": mthdIL.Emit(OpCodes.Ldfld, xField);
			      break;
	         case "GetY": mthdIL.Emit(OpCodes.Ldfld, yField);
			      break;
	         case "GetZ": mthdIL.Emit(OpCodes.Ldfld, zField);
			      break;

	      }
	      mthdIL.Emit(OpCodes.Ret);

           }
	   // Finally, we create the type.

 	   pointType = pointTypeBld.CreateType();

	   // Let's save it, just for posterity.

	   myAsmBuilder.Save("Point.dll");

	   return pointType;

 	}

	public static void Main() {

	   Type myDynamicType = null;
           object aPoint = null;
	   Type[] aPtypes = new Type[] {typeof(int), typeof(int), typeof(int)};
           object[] aPargs = new object[] {4, 5, 6};

	   // Call the  method to build our dynamic class.

	   myDynamicType = DynamicPointTypeGen();

	   Console.WriteLine("Some information about my new Type '{0}':",
			      myDynamicType.FullName);
	   Console.WriteLine("Assembly: '{0}'", myDynamicType.Assembly);
	   Console.WriteLine("Attributes: '{0}'", myDynamicType.Attributes);
	   Console.WriteLine("Module: '{0}'", myDynamicType.Module);
	   Console.WriteLine("Members: "); 
	   foreach (MemberInfo member in myDynamicType.GetMembers()) {
		Console.WriteLine("-- {0} {1};", member.MemberType, member.Name);
	   }

           Console.WriteLine("---");

	   // Let's take a look at the constructor we created.

	   ConstructorInfo myDTctor = myDynamicType.GetConstructor(aPtypes);
           Console.WriteLine("Constructor: {0};", myDTctor.ToString());

           Console.WriteLine("---");

           // Now, we get to use our dynamically-created class by invoking the constructor. 

	   aPoint = myDTctor.Invoke(aPargs);
           Console.WriteLine("aPoint is type {0}.", aPoint.GetType());


	   // Finally, let's reflect on the instance of our new type - aPoint - and
	   // make sure everything proceeded according to plan.

	   Console.WriteLine("aPoint.x = {0}",
			     myDynamicType.InvokeMember("GetX",
						        BindingFlags.InvokeMethod,
							null,
							aPoint,
							new object[0]));
	   Console.WriteLine("aPoint.y = {0}",
			     myDynamicType.InvokeMember("GetY",
						        BindingFlags.InvokeMethod,
							null,
							aPoint,
							new object[0]));
	   Console.WriteLine("aPoint.z = {0}",
			     myDynamicType.InvokeMember("GetZ",
						        BindingFlags.InvokeMethod,
							null,
							aPoint,
							new object[0]));



	   // +++ OUTPUT +++
	   // Some information about my new Type 'Point':
	   // Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
	   // Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
	   // Module: 'PointModule'
	   // Members: 
	   // -- Field x;
	   // -- Field y;
	   // -- Field z;
           // -- Method GetHashCode;
           // -- Method Equals;
           // -- Method ToString;
           // -- Method GetType;
           // -- Constructor .ctor;
	   // ---
	   // Constructor: Void .ctor(Int32, Int32, Int32);
	   // ---
	   // aPoint is type Point.
	   // aPoint.x = 4
	   // aPoint.y = 5
	   // aPoint.z = 6

	}

}

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: