Freigeben über


Type.GetConstructorImpl-Methode

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

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

Syntax

'Declaration
Protected MustOverride Function GetConstructorImpl ( _
    bindingAttr As BindingFlags, _
    binder As Binder, _
    callConvention As CallingConventions, _
    types As Type(), _
    modifiers As ParameterModifier() _
) As ConstructorInfo
'Usage
Dim bindingAttr As BindingFlags
Dim binder As Binder
Dim callConvention As CallingConventions
Dim types As Type()
Dim modifiers As ParameterModifier()
Dim returnValue As ConstructorInfo

returnValue = Me.GetConstructorImpl(bindingAttr, binder, callConvention, types, modifiers)
protected abstract ConstructorInfo GetConstructorImpl (
    BindingFlags bindingAttr,
    Binder binder,
    CallingConventions callConvention,
    Type[] types,
    ParameterModifier[] modifiers
)
protected:
virtual ConstructorInfo^ GetConstructorImpl (
    BindingFlags bindingAttr, 
    Binder^ binder, 
    CallingConventions callConvention, 
    array<Type^>^ types, 
    array<ParameterModifier>^ modifiers
) abstract
protected abstract ConstructorInfo GetConstructorImpl (
    BindingFlags bindingAttr, 
    Binder binder, 
    CallingConventions callConvention, 
    Type[] types, 
    ParameterModifier[] modifiers
)
protected abstract function GetConstructorImpl (
    bindingAttr : BindingFlags, 
    binder : Binder, 
    callConvention : CallingConventions, 
    types : Type[], 
    modifiers : ParameterModifier[]
) : ConstructorInfo

Parameter

  • bindingAttr
    Eine Bitmaske aus einem oder mehreren BindingFlags, die angeben, wie die Suche durchgeführt wird.

    - oder -

    0 (null), damit NULL (Nothing in Visual Basic) zurückgegeben wird.

  • binder
    Ein Binder-Objekt, das eine Gruppe von Eigenschaften definiert und eine Bindung ermöglicht. Dazu kann die Auswahl einer überladenen Methode, die Umwandlung von Argumenttypen und der Aufruf eines Members durch Reflektion gehören.

    - oder -

    NULL (Nothing in Visual Basic), wenn der DefaultBinder verwendet werden soll.

  • callConvention
    Das CallingConventions-Objekt, das die Regeln für die Reihenfolge und das Layout von Argumenten, die Art der Übergabe des Rückgabewerts, die für Argumente zu verwendenden Register und die Art der Bereinigung des Stapels angibt.
  • types
    Ein Array von Type-Objekten, das Anzahl, Reihenfolge und Typ der Parameter des abzurufenden Konstruktors darstellt.

    - oder -

    Ein leeres Array vom Type-Typ, d. h. Type[] types = new Type[0], zum Abrufen eines Konstruktors, der keine Parameter akzeptiert.

  • modifiers
    Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im types-Array zugeordnet sind. Der Standardbinder verarbeitet diesen Parameter nicht.

Rückgabewert

Ein ConstructorInfo-Objekt, das den Konstruktor darstellt, der den angegebenen Anforderungen entspricht, oder NULL (Nothing in Visual Basic), wenn kein entsprechender Konstruktor gefunden wurde.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

types ist NULL (Nothing in Visual Basic).

- oder -

Eines der Elemente in types ist NULL (Nothing in Visual Basic).

ArgumentException

types ist mehrdimensional.

- oder -

modifiers ist mehrdimensional.

- oder -

types und modifiers haben nicht dieselbe Länge.

Hinweise

Obwohl der Standardbinder ParameterModifier (den modifiers-Parameter) nicht verarbeitet, können Sie die abstrakte System.Reflection.Binder-Klasse zum Schreiben eines benutzerdefinierten Binders verwenden, der modifiers verarbeitet. ParameterModifier wird nur in Verbindung mit COM-Interop-Aufrufen verwendet, und es werden nur Parameter verarbeitet, die als Verweis übergeben werden.

Das types-Array und das modifiers-Array haben dieselbe Länge. Ein im types-Array angegebener Parameter kann die folgenden im modifiers-Array definierten Attribute besitzen: pdIn, pdOut, pdLcid, pdRetval, pdOptional und pdHasDefault, die [In], [Out], [lcid], [retval], [optional] und einen Wert darstellen, der angibt, ob der Parameter über einen Standardwert verfügt. Die einem Parameter zugeordneten Attribute werden in den Metadaten gespeichert und für die Interoperabilität verwendet.

Wenn keine genaue Übereinstimmung vorhanden ist, versucht der binder, die im types-Array angegebenen Parametertypen zu konvertieren, um eine Übereinstimmung auszuwählen. Wenn der binder keine Übereinstimmung auswählen kann, wird NULL (Nothing in Visual Basic) zurückgegeben.

Über die folgenden BindingFlags-Filterflags kann festgelegt werden, welche Konstruktoren in die Suche einbezogen werden:

  • Es wird nur dann ein Ergebnis zurückgegeben, wenn entweder BindingFlags.Instance oder BindingFlags.Static angegeben wird.

  • Geben Sie BindingFlags.Public an, um öffentliche Konstruktoren in die Suche einzubeziehen.

  • Geben Sie BindingFlags.NonPublic an, um nicht öffentliche Konstruktoren, d. h. private und geschützte Konstruktoren, in die Suche einzubeziehen.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Diese Methode implementiert GetConstructor.

Diese Methode gibt NULL (Nothing in Visual Basic) zurück, wenn der angeforderte Typ nicht öffentlich ist und der Aufrufer keine ReflectionPermission zum Reflektieren nicht öffentlicher Objekte außerhalb der aktuellen Assembly besitzt.

GetConstructor und GetConstructorImpl können nicht zum Abrufen eines Klasseninitialisierers verwendet werden. Klasseninitialisierer sind nur über GetMember, GetMembers, FindMembers und GetConstructors verfügbar.

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Type-Klasse
Type-Member
System-Namespace
ConstructorInfo
BindingFlags
Binder
DefaultBinder
CallingConventions
ParameterModifier
ReflectionPermission
GetConstructor
GetConstructors