TypeBuilder.InvokeMember Metoda

Definice

Vyvolá zadaný člen. Metoda, která má být vyvolána, musí být přístupná a poskytovat nejpřesnější shodu se zadaným seznamem argumentů v rámci omezení zadaných vazeb a vyvolání atributů.

public:
 override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object

Parametry

name
String

Název člena, který se má vyvolat. Může to být konstruktor, metoda, vlastnost nebo pole. Je nutné zadat vhodný atribut vyvolání. Všimněte si, že je možné vyvolat výchozí člen třídy předáním prázdného řetězce jako název člena.

invokeAttr
BindingFlags

Atribut vyvolání To musí být bit příznak z BindingFlags.

binder
Binder

Objekt, který umožňuje vazbu, převod typů argumentů, vyvolání členů a načtení MemberInfo objektů pomocí reflexe. Pokud je nullpořadač , použije se výchozí pořadač. Viz Binder.

target
Object

Objekt, na kterém se má vyvolat zadaný člen. Pokud je člen statický, bude tento parametr ignorován.

args
Object[]

Seznam argumentů Toto je pole objektů, které obsahuje číslo, pořadí a typ parametrů člena, které se mají vyvolat. Pokud neexistují žádné parametry, neměly by mít hodnotu null.

modifiers
ParameterModifier[]

Pole se stejnou délkou jako args s prvky, které představují atributy přidružené k argumentům člena, který má být vyvolán. Parametr má přidružené atributy v metadatech. Používají je různé služby interoperability. Další podrobnosti najdete v specifikacích metadat.

culture
CultureInfo

Instance CultureInfo sloužící k řízení převodu typů. Pokud je tato hodnota null, CultureInfo použije se pro aktuální vlákno. (Mějte na paměti, že to je nezbytné k převodu řetězce, který představuje hodnotu 1000 na hodnotu Double, protože 1000 je reprezentováno odlišně různými jazykovými verzemi.)

namedParameters
String[]

Každý parametr v namedParameters poli získá hodnotu v odpovídajícím prvku pole args . Pokud je délka args větší než délka , předají se zbývající hodnoty argumentů namedParametersv pořadí.

Návraty

Vrátí vrácenou hodnotu vyvolaného členu.

Atributy

Výjimky

Tato metoda není v současné době podporována pro neúplné typy.

Poznámky

Metoda bude vyvolána, pokud se počet parametrů v deklaraci metody rovná počtu argumentů v zadaném seznamu argumentů a typ každého argumentu lze převést pořadačem na typ parametru.

Pořadač najde všechny odpovídající metody. Tyto metody jsou nalezeny na základě typu požadované vazby (BindingFlags.InvokeMethod, BindingFlags.GetProperties atd.). Sada metod je filtrována podle názvu, počtu argumentů a sady modifikátorů vyhledávání definovaných v pořadači. Po výběru metody se vyvolá. Přístupnost je v tomto okamžiku zaškrtnutá. Hledání může řídit, která sada metod se prohledá na základě atributu usnadnění přidruženého k metodě. Metoda IBinder.BindToMethod je zodpovědná za výběr metody, která se má vyvolat. Výchozí pořadač vybere nejpřesnější shodu.

Note

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 vždy, když je kód plně důvěryhodný.

Tato metoda se v současné době nepodporuje. Typ můžete načíst pomocí Type.GetType nebo Assembly.GetType použít reflexi načteného typu.

Platí pro