Sdílet prostřednictvím


ConstructorInfo.Invoke Metoda

Definice

Vyvolá konstruktor reflektované touto instancí.

Přetížení

Invoke(Object[])

Vyvolá konstruktor, který se odráží v 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 reflektovaný tímto ConstructorInfo se zadanými argumenty v rámci omezení zadané Bindertřídy .

Invoke(Object[])

Zdroj:
ConstructorInfo.cs
Zdroj:
ConstructorInfo.cs
Zdroj:
ConstructorInfo.cs

Vyvolá konstruktor, který se odráží v 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ídají číslu, pořadí a typu (za omezení výchozího pořadače) parametrů pro tento konstruktor. Pokud tento konstruktor nepřijímá žádné parametry, použijte buď pole s nulou prvků, nebo null, stejně jako v části Object[] parameters = new Object[0]. Každý objekt v tomto poli, který není explicitně inicializován hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. U elementů typu odkaz je nulltato hodnota . Pro prvky typu hodnota 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

Třída je abstraktní.

-nebo-

Konstruktor je inicializátor třídy.

Konstruktor je soukromý nebo chráněný a volajícímu chybí MemberAccess.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MemberAccessExceptionzákladní třídy .

Pole parameters neobsahuje hodnoty, které odpovídají typům akceptovaným tímto konstruktorem.

Vyvolaný konstruktor vyvolá výjimku.

Byl předán nesprávný počet parametrů.

TypedReferenceVytváření typů , ArgIteratora RuntimeArgumentHandle není podporováno.

Volající nemá potřebná přístupová oprávnění ke kódu.

Poznámky

Počet, typ a pořadí prvků v parameters poli by měly být identické s číslem, typem a pořadím parametrů konstruktoru, který se odráží v této instanci. Před voláním konstruktoru zajistí, Invoke že volající má oprávnění k přístupu a ověří, zda jsou parametry platné.

Omezení přístupu jsou ignorována pro plně důvěryhodný kód. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem je možné přistupovat a vyvolávat 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 instance, použijte metodu CreateInstance .

Tato metoda je pohodlná metoda pro následující přetíženou verzi s použitím výchozích hodnot. Tuto metodu nelze přepsat.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným členům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení neveřejných členů omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

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

Zdroj:
ConstructorInfo.cs
Zdroj:
ConstructorInfo.cs
Zdroj:
ConstructorInfo.cs

Při implementaci v odvozené třídě vyvolá konstruktor reflektovaný tímto ConstructorInfo se zadanými argumenty v rámci omezení zadané Bindertřídy .

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čuje typ vazby.

binder
Binder

A Binder , který definuje sadu vlastností a umožňuje vazbu, převod typů argumentů a vyvolání členů pomocí reflexe. Pokud binder je null, použije se Binder.DefaultBinding .

parameters
Object[]

Pole typu Object , které se používá ke shodě s číslem, pořadím a typem parametrů pro tento konstruktor v rámci omezení binder. Pokud tento konstruktor nevyžaduje parametry, předejte pole s nulou prvků, jako v části Object[] parameters = new Object[0]. Každý objekt v tomto poli, který není explicitně inicializován hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. U elementů typu odkaz je nulltato hodnota . Pro prvky typu hodnota je tato hodnota 0, 0,0 nebo false, v závislosti na konkrétním typu prvku.

culture
CultureInfo

Slouží CultureInfo k řízení donucování typů. Pokud je nullto , použije se CultureInfo pro aktuální vlákno .

Návraty

Instance třídy přidružené k konstruktoru.

Výjimky

Pole parameters neobsahuje hodnoty, které odpovídají typům akceptovaným tímto konstruktorem v rámci omezení binder.

Vyvolaný konstruktor vyvolá výjimku.

Byl předán nesprávný počet parametrů.

TypedReferenceVytváření typů , ArgIteratora RuntimeArgumentHandle není podporováno.

Volající nemá potřebná přístupová oprávnění ke kódu.

Třída je abstraktní.

-nebo-

Konstruktor je inicializátor třídy.

Konstruktor je soukromý nebo chráněný a volajícímu chybí MemberAccess.

Poznámky

Počet, typ a pořadí prvků v parameters poli by měly být identické s číslem, typem a pořadím parametrů konstruktoru, který se odráží v této instanci.

Před voláním konstruktoru zajišťuje, Invoke že volající má oprávnění k přístupu a že parametry mají správné číslo, pořadí a typ.

Omezení přístupu jsou ignorována pro plně důvěryhodný kód. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem je možné přistupovat a vyvolávat 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 instance, použijte metodu CreateInstance .

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným členům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení neveřejných členů omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Viz také

Platí pro