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 reflektované touto instancí.
Přetížení
Invoke(Object[]) |
Vyvolá konstruktor odrážející instanci, která má zadané parametry, a poskytne výchozí hodnoty pro parametry, které se běžně nepoužívají. |
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
Při implementaci v odvozené třídě vyvolá konstruktor, který se tím |
Invoke(Object[])
- Zdroj:
- ConstructorInfo.cs
- Zdroj:
- ConstructorInfo.cs
- Zdroj:
- ConstructorInfo.cs
Vyvolá konstruktor odrážející instanci, která má zadané parametry, a poskytne výchozí hodnoty pro parametry, 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[]
Pole hodnot, které odpovídají číslu, pořadí a typu (v rámci omezení výchozího pořadače) parametrů tohoto konstruktoru. Pokud tento konstruktor nepřijímá žádné parametry, použijte buď pole s nulovými prvky, nebo null
, jako v parametru Object[] parameters = new Object[0]. Každý objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. U elementů typu odkazu je null
tato hodnota . U prvků typu hodnota je tato hodnota 0, 0,0 nebo false
, v závislosti na konkrétním typu elementu.
Návraty
Instance třídy přidružené k konstruktoru.
Výjimky
Konstruktor je soukromý nebo chráněný a volající nemá MemberAccess.
Poznámka: V .NET pro aplikace pro Windows Store nebo v přenosné knihovně tříd místo toho zachyťte výjimku MemberAccessExceptionzákladní třídy.
Pole parameters
neobsahuje hodnoty, které odpovídají typům přijatým tímto konstruktorem.
Vyvoláný 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
Číslo, typ a pořadí prvků v parameters
matici by mělo být stejné jako číslo, typ a pořadí parametrů konstruktoru, které odráží tato instance. 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 se u plně důvěryhodného kódu ignorují. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem je možné přistupovat a vyvolat je 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 pohodlnou metodou 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 byl volajícímu 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, který se tím ConstructorInfo
projeví se zadanými argumenty, pod omezeními zadané 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čuje typ vazby.
- binder
- Binder
A Binder
, který definuje sadu vlastností a umožňuje vazbu, vynucování typů argumentů a vyvolání členů pomocí reflexe. Pokud binder
je null
, použije se Binder.DefaultBinding
.
- parameters
- Object[]
Pole typuObject
, 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 nulovými prvky, jako v části Object[] parameters = new Object[0]. Každý objekt v tomto poli, který není explicitně inicializován s hodnotou, bude obsahovat výchozí hodnotu pro tento typ objektu. U elementů typu odkazu je null
tato hodnota . U prvků typu hodnota je tato hodnota 0, 0,0 nebo false
, v závislosti na konkrétním typu elementu.
- culture
- CultureInfo
Slouží CultureInfo k řízení donucování typů. Pokud je null
to , 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 přijatým tímto konstruktorem v rámci omezení binder
.
Vyvoláný 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.
Konstruktor je soukromý nebo chráněný a volající nemá MemberAccess.
Poznámky
Číslo, typ a pořadí prvků v parameters
matici by mělo být stejné jako číslo, typ a pořadí parametrů konstruktoru, které odráží tato instance.
Před voláním konstruktoru zkontrolujte, Invoke
že volající má přístupové oprávnění a že parametry mají správné číslo, pořadí a typ.
Omezení přístupu se u plně důvěryhodného kódu ignorují. To znamená, že k soukromým konstruktorům, metodám, polím a vlastnostem je možné přistupovat a vyvolat je 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 byl volajícímu 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro