Freigeben über


ConstructorInfo.Invoke Methode

Definition

Ruft den Konstruktor auf, der von dieser Instanz reflektiert wird.

Überlädt

Invoke(Object[])

Ruft den Konstruktor auf, der von der Instanz reflektiert wird, die über die angegebenen Parameter verfügt, und stellt damit Standardwerte für die nicht häufig verwendeten Parameter bereit.

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

Ruft bei der Implementierung in einer abgeleiteten Klasse den von dieser ConstructorInfo reflektierten Konstruktor mit den angegebenen Argumenten und gemäß den Einschränkungen des angegebenen Binder auf.

Invoke(Object[])

Quelle:
ConstructorInfo.cs
Quelle:
ConstructorInfo.cs
Quelle:
ConstructorInfo.cs

Ruft den Konstruktor auf, der von der Instanz reflektiert wird, die über die angegebenen Parameter verfügt, und stellt damit Standardwerte für die nicht häufig verwendeten Parameter bereit.

public:
 virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
 System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke (object[] parameters);
public object Invoke (object?[]? parameters);
public object Invoke (object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object

Parameter

parameters
Object[]

Ein Array von Werten, das (unter den Einschränkungen des Standardbinders) Anzahl, Reihenfolge und Typ der Parameter für diesen Konstruktor entspricht. Wenn dieser Konstruktor keine Parameter akzeptiert, verwenden Sie entweder ein Array mit 0 Elementen oder null, wie in „Object[] parameters = new Object [0]“. Jedes Objekt im Array, das nicht explizit mit einem Wert initialisiert wird, wird den Standardwert für diesen Objekttyp enthalten. Bei Verweistypelementen ist dieser Wert null. Bei Werttypelementen ist dieser Wert je nach Typ des jeweiligen Elements 0, 0.0 oder false.

Gibt zurück

Eine Instanz der Klasse, die dem Konstruktor zugeordnet ist.

Ausnahmen

Die Klasse ist abstrakt.

- oder -

Der Konstruktor ist ein Klasseninitialisierer.

Der Konstruktor ist privat oder geschützt, und dem Aufrufer fehlt MemberAccess.

Hinweis: Erfassen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothek stattdessen die Basisklassen-Ausnahme MemberAccessException.

Das parameters-Array enthält keine Werte, die den von diesem Konstruktor akzeptierten Typen entsprechen.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Es wurde eine falsche Anzahl von Parametern übergeben.

Erstellen von TypedReference-, ArgIterator- und RuntimeArgumentHandle-Typen wird nicht unterstützt.

Der Aufrufer verfügt nicht über die erforderliche Codezugriffsberechtigung.

Hinweise

Die Anzahl, der Typ und die Reihenfolge der parameters Elemente im Array sollten mit der Anzahl, dem Typ und der Reihenfolge der Parameter für den Konstruktor identisch sein, der von dieser Instanz widerspiegelt wird. Stellen Sie vor dem Aufrufen des Konstruktors sicher, Invoke dass der Aufrufer über Zugriffsberechtigungen verfügt, und überprüft, ob die Parameter gültig sind.

Zugriffseinschränkungen werden für vollständig vertrauenswürdigen Code ignoriert. Das heißt, private Konstruktoren, Methoden, Felder und Eigenschaften können mithilfe von Reflektion aufgerufen und aufgerufen werden, wenn der Code vollständig vertrauenswürdig ist.

Hinweis

Verwenden Sie die CreateInstance -Methode, um eine Instanz eines Werttyps ohne Instanzkonstruktoren zu erstellen.

Diese Methode ist eine Komfortmethode für die folgende überladene Version, die Standardwerte verwendet. Diese Methode kann nicht überschrieben werden.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um auf nicht öffentliche Member zuzugreifen, wenn dem Aufrufer das ReflectionPermissionFlag.RestrictedMemberAccess Flag gewährt ReflectionPermission wurde und wenn der Grant-Satz der nicht öffentlichen Member auf den Grant-Satz des Aufrufers oder eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für:

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

Quelle:
ConstructorInfo.cs
Quelle:
ConstructorInfo.cs
Quelle:
ConstructorInfo.cs

Ruft bei der Implementierung in einer abgeleiteten Klasse den von dieser ConstructorInfo reflektierten Konstruktor mit den angegebenen Argumenten und gemäß den Einschränkungen des angegebenen Binder auf.

public:
 abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

Parameter

invokeAttr
BindingFlags

Einer der BindingFlags-Werte, der den Typ der Bindung angibt.

binder
Binder

Ein Binder, das einen Satz von Eigenschaften definiert sowie die Bindung, die Koersion von Argumenttypen und das Aufrufen von Membern mittels Reflektion ermöglicht. Wenn binder den Wert null hat, wird Binder.DefaultBinding verwendet.

parameters
Object[]

Ein Array vom Typ Object, das zum Abgleichen der Anzahl, der Reihenfolge und des Typs der Parameter für diesen Konstruktor verwendet wird, und dabei gemäß den Einschränkungen von binder vorgeht. Wenn für diesen Konstruktor keine Parameter erforderlich sind, übergeben Sie ein Array mit 0 Elementen, wie in Object[] parameters = new Object[0]. Jedes Objekt im Array, das nicht explizit mit einem Wert initialisiert wird, wird den Standardwert für diesen Objekttyp enthalten. Bei Verweistypelementen ist dieser Wert null. Bei Werttypelementen ist dieser Wert je nach Typ des jeweiligen Elements 0, 0.0 oder false.

culture
CultureInfo

Eine CultureInfo für die Steuerung der Koersion von Typen. Wenn dies null ist, wird die CultureInfo des aktuellen Threads verwendet.

Gibt zurück

Eine Instanz der Klasse, die dem Konstruktor zugeordnet ist.

Ausnahmen

Das parameters-Array enthält keine Werte, die den von diesem Konstruktor akzeptierten Typen gemäß den Einschränkungen des binder entsprechen.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Es wurde eine falsche Anzahl von Parametern übergeben.

Erstellen von TypedReference-, ArgIterator- und RuntimeArgumentHandle-Typen wird nicht unterstützt.

Der Aufrufer verfügt nicht über die notwendigen Zugriffsberechtigungen für den Code.

Die Klasse ist abstrakt.

- oder -

Der Konstruktor ist ein Klasseninitialisierer.

Der Konstruktor ist privat oder geschützt, und dem Aufrufer fehlt MemberAccess.

Hinweise

Die Anzahl, der Typ und die Reihenfolge der parameters Elemente im Array sollten mit der Anzahl, dem Typ und der Reihenfolge der Parameter für den Konstruktor identisch sein, der von dieser Instanz widerspiegelt wird.

Stellen Sie vor dem Aufrufen des Konstruktors sicher, Invoke dass der Aufrufer über Zugriffsberechtigungen verfügt und dass die Parameter die richtige Nummer, Reihenfolge und den richtigen Typ aufweisen.

Zugriffseinschränkungen werden für vollständig vertrauenswürdigen Code ignoriert. Das heißt, private Konstruktoren, Methoden, Felder und Eigenschaften können mithilfe von Reflektion aufgerufen und aufgerufen werden, wenn der Code vollständig vertrauenswürdig ist.

Hinweis

Verwenden Sie die CreateInstance -Methode, um eine Instanz eines Werttyps ohne Instanzkonstruktoren zu erstellen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um auf nicht öffentliche Member zuzugreifen, wenn dem Aufrufer das ReflectionPermissionFlag.RestrictedMemberAccess Flag gewährt ReflectionPermission wurde und wenn der Grant-Satz der nicht öffentlichen Member auf den Grant-Satz des Aufrufers oder eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher ausgerichtet sein.

Weitere Informationen

Gilt für: