ConstructorInfo.Invoke Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
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
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
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.