ConstructorInfo.Invoke Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyvolá konstruktor, který odráží tato instance.
Přetížení
Invoke(Object[]) |
Vyvolá konstruktor odrážející instanci, která má zadané parametry, a poskytuje výchozí hodnoty pro parametry, které nejsou běžně používány. |
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
Při implementaci v odvozené třídě vyvolá konstruktor reflektující |
Invoke(Object[])
Vyvolá konstruktor odrážející instanci, která má zadané parametry, a poskytuje výchozí hodnoty pro parametry, které nejsou běžně používány.
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
Parametry
- parameters
- Object[]
Pole hodnot, které odpovídá číslu, pořadí a typu (v rámci omezení výchozího pořadače) parametrů pro tento konstruktor. Pokud tento konstruktor nepřijímá žádné parametry, použijte buď pole s nulovými prvky null
, nebo, jako v objektu [] Parameters = New Object [0]. Libovolný objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. Pro prvky typu odkazu je tato hodnota null
. Pro prvky typu hodnoty je tato hodnota 0, 0,0 nebo false
, v závislosti na konkrétním typu prvku.
Návraty
Instance třídy přidružené k konstruktoru.
Výjimky
Konstruktor je privátní nebo chráněný a chybí volající MemberAccess .
poznámka: v rozhraní .net pro aplikace Windows store nebo přenositelné knihovny třídzachyťte výjimku základní třídy MemberAccessException místo toho.
parameters
Pole neobsahuje hodnoty, které odpovídají typům přijatým tímto konstruktorem.
Vyvolaný konstruktor vyvolá výjimku.
Byl předán nesprávný počet parametrů.
Vytváření TypedReference typů, ArgIterator a RuntimeArgumentHandle nejsou podporovány.
Volající nemá potřebná přístupová oprávnění kódu.
Poznámky
Počet, typ a pořadí prvků v parameters
poli musí být stejné jako číslo, typ a pořadí parametrů pro konstruktor, který odráží tato instance. Před voláním konstruktoru Invoke
zajistí, že volající má přístupové oprávnění a ověří, zda jsou parametry platné.
U plně důvěryhodného kódu jsou omezení přístupu ignorována. To znamená, že privátní konstruktory, metody, pole a vlastnosti mohou být k dispozici a vyvolány pomocí reflexe vždy, když je kód plně důvěryhodný.
Poznámka
Chcete-li vytvořit instanci typu hodnoty, která nemá žádné konstruktory instancí, použijte CreateInstance metodu.
Tato metoda je pohodlnější způsob pro následující přetíženou verzi s použitím výchozích hodnot. Tuto metodu nelze přepsat.
Poznámka
od .NET Framework 2,0 s aktualizací Service Pack 1 lze tuto metodu použít pro přístup k neveřejným členům, pokud byl volající udělen ReflectionPermission s ReflectionPermissionFlag.RestrictedMemberAccess příznakem a pokud je udělená sada neveřejných členů omezena na udělenou skupinu volajícího nebo na její podmnožinu. (Další informace najdete v tématu informace o zabezpečení pro reflexi.)
chcete-li použít tuto funkci, vaše aplikace by měla cílit na .NET Framework 3,5 nebo novější.
Platí pro
Invoke(BindingFlags, Binder, Object[], CultureInfo)
Při implementaci v odvozené třídě vyvolá konstruktor reflektující ConstructorInfo
se zadanými argumenty v rámci omezení zadaného Binder
.
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
Parametry
- invokeAttr
- BindingFlags
Jedna z BindingFlags
hodnot, které určují typ vazby.
- binder
- Binder
Binder
Který definuje sadu vlastností a povoluje vazbu, vynucení typů argumentů a vyvolání členů pomocí reflexe. Pokud binder
je null
, pak Binder.DefaultBinding
se použije.
- parameters
- Object[]
Pole typu Object
používané pro shodu s počtem, pořadím a typem parametrů pro tento konstruktor v rámci omezení binder
. Pokud tento konstruktor nevyžaduje parametry, předejte pole s nulovými prvky, jako v objektu [] Parameters = New Object [0]. Libovolný objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. Pro prvky typu odkazu je tato hodnota null
. Pro prvky typu hodnoty je tato hodnota 0, 0,0 nebo false
, v závislosti na konkrétním typu prvku.
- culture
- CultureInfo
CultureInfoSlouží k řízení vynucení typů. V takovém případě se null
CultureInfo použije pro aktuální vlákno.
Návraty
Instance třídy přidružené k konstruktoru.
Výjimky
parameters
Pole neobsahuje hodnoty, které odpovídají typům přijatým tímto konstruktorem, v rámci omezení binder
.
Vyvolaný konstruktor vyvolá výjimku.
Byl předán nesprávný počet parametrů.
Vytváření TypedReference typů, ArgIterator a RuntimeArgumentHandle nejsou podporovány.
Volající nemá potřebná přístupová oprávnění kódu.
Konstruktor je privátní nebo chráněný a chybí volající MemberAccess .
Poznámky
Počet, typ a pořadí prvků v parameters
poli musí být stejné jako číslo, typ a pořadí parametrů pro konstruktor, který odráží tato instance.
Před voláním konstruktoru Invoke
ověří, zda má volající oprávnění přístupu a zda jsou parametry správného čísla, pořadí a typu.
U plně důvěryhodného kódu jsou omezení přístupu ignorována. To znamená, že privátní konstruktory, metody, pole a vlastnosti mohou být k dispozici a vyvolány pomocí reflexe vždy, když je kód plně důvěryhodný.
Poznámka
Chcete-li vytvořit instanci typu hodnoty, která nemá žádné konstruktory instancí, použijte CreateInstance metodu.
Poznámka
od .NET Framework 2,0 s aktualizací Service Pack 1 lze tuto metodu použít pro přístup k neveřejným členům, pokud byl volající udělen ReflectionPermission s ReflectionPermissionFlag.RestrictedMemberAccess příznakem a pokud je udělená sada neveřejných členů omezena na udělenou skupinu volajícího nebo na její podmnožinu. (Další informace najdete v tématu informace o zabezpečení pro reflexi.)
chcete-li použít tuto funkci, vaše aplikace by měla cílit na .NET Framework 3,5 nebo novější.