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[])

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

Object

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: Fangen Sie in .NET Windows Store-Apps oder der portablenKlassenbibliothek stattdessen die Basisklassenausnahme MemberAccessException ab.

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 Elemente im Array sollten mit der Anzahl, dem Typ und der Reihenfolge der Parameter für den Konstruktor identisch sein, der von dieser parameters Instanz reflektiert wird. Stellt vor dem Aufrufen des Konstruktors sicher, dass der Aufrufer über Zugriffsberechtigungen verfügt, und Invoke überprüft, ob die Parameter gültig sind.

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

Hinweis

Verwenden Sie die -Methode, um eine Instanz eines Werttyps zu erstellen, der über keine Instanzkonstruktoren CreateInstance verfügt.

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

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode für den Zugriff auf nicht öffentliche Member verwendet werden, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der nicht öffentlichen Member auf den Berechtigungssatz des Aufrufers oder eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Gilt für

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.

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

Object

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 Elemente im Array sollten mit der Anzahl, dem Typ und der Reihenfolge der Parameter für den Konstruktor identisch sein, der von dieser parameters Instanz reflektiert wird.

Stellt vor dem Aufrufen des Konstruktors sicher, dass der Aufrufer über Zugriffsberechtigungen verfügt und dass die Parameter die richtige Invoke Anzahl, Reihenfolge und den richtigen Typ haben.

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

Hinweis

Verwenden Sie die -Methode, um eine Instanz eines Werttyps zu erstellen, der über keine Instanzkonstruktoren CreateInstance verfügt.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode für den Zugriff auf nicht öffentliche Member verwendet werden, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der nicht öffentlichen Member auf den Berechtigungssatz des Aufrufers oder eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Siehe auch

Gilt für