ConstructorInfo.Invoke Metoda

Definice

Vyvolá konstruktor reflektován touto instancí.

Přetížení

Name Description
Invoke(Object[])

Vyvolá konstruktor, který odráží instanci se zadanými parametry a poskytuje výchozí hodnoty parametrů, které se běžně nepoužívají.

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ého Binder.

Invoke(Object[])

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

Vyvolá konstruktor, který odráží instanci se zadanými parametry a poskytuje výchozí hodnoty parametrů, které se běžně nepoužívají.

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

Matice 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, nebo null, jako v parametrech Object[] = new Object[0]. Jakýkoli objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. Pro elementy typu odkaz je tato hodnota null. U prvků 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í chybí MemberAccess.

Pole parameters 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í typů TypedReferencea ArgIteratorRuntimeArgumentHandle typů není podporováno.

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

Poznámky

Číslo, typ a pořadí prvků v parameters poli by mělo být shodné s číslem, typem a pořadím parametrů pro konstruktor reflektované touto instancí. Před voláním konstruktoru zajistíte, že volající má oprávnění k přístupu a ověří, Invoke zda jsou parametry platné.

Omezení přístupu se ignorují pro plně důvěryhodný kód. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem lze přistupovat a vyvolat pomocí reflexe, kdykoli je kód plně důvěryhodný.

Note

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.

Note

Tuto metodu lze použít pro přístup k neveřejným členům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení nepřístupných členů omezena na sadu grantů volajícího nebo její podmnožinu. (Viz aspekty zabezpečení pro reflexi.)

Platí pro

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

Zdroj:
ConstructorInfo.cs
Zdroj:
ConstructorInfo.cs
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é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

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

parameters
Object[]

Pole typuObject, které odpovídá číslu, pořadí a typu parametrů pro tento konstruktor, v rámci omezení .binder Pokud tento konstruktor nevyžaduje parametry, předejte pole s nulovými prvky, jako v parametrech Object[] = new Object[0]. Jakýkoli objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. Pro elementy typu odkaz je tato hodnota null. U prvků 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í převodu typů. V takovém případě nullCultureInfo se použije 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 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í typů TypedReferencea ArgIteratorRuntimeArgumentHandle typů 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í chybí MemberAccess.

Poznámky

Číslo, typ a pořadí prvků v parameters poli by mělo být shodné s číslem, typem a pořadím parametrů pro konstruktor reflektované touto instancí.

Před voláním konstruktoru zajistíte, 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 se ignorují pro plně důvěryhodný kód. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem lze přistupovat a vyvolat pomocí reflexe, kdykoli je kód plně důvěryhodný.

Note

Chcete-li vytvořit instanci typu hodnoty, která nemá žádné konstruktory instance, použijte metodu CreateInstance .

Note

Tuto metodu lze použít pro přístup k neveřejným členům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení nepřístupných členů omezena na sadu grantů volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Viz také

Platí pro