TypeBuilder.InvokeMember 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á zadaný člen. Metoda, která má být vyvolána, musí být přístupná a poskytnout nejkonvlastnější shodu se zadaným seznamem argumentů v rámci omezení zadaného pořadače a atributů volání.
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);
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);
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 se jednat o konstruktor, metodu, vlastnost nebo pole. Musí být zadán 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ázvu členu.
- invokeAttr
- BindingFlags
Atribut vyvolání. Musí to být bitový příznak z BindingFlags
.
- binder
- Binder
Objekt, který umožňuje vazbu, vynucování typů argumentů, vyvolání členů a načtení MemberInfo
objektů pomocí reflexe. Pokud je null
pořadač , použije se výchozí pořadač. Viz třída Binder.
- target
- Object
Objekt, na kterém se má vyvolat zadaný člen. Pokud je člen statický, je tento parametr ignorován.
- args
- Object[]
Seznam argumentů. Toto je pole objektů, které obsahuje počet, pořadí a typ parametrů členu, který má být vyvolán. Pokud neexistují žádné parametry, měl by mít hodnotu null.
- modifiers
- ParameterModifier[]
Pole stejné délky jako args
s prvky, které představují atributy spojené s argumenty členu, který má být vyvolán. Parametr má v metadatech přidružené atributy. Používají je různé služby interoperability. Další podrobnosti najdete ve specifikacích metadat.
- culture
- CultureInfo
Instance CultureInfo
slouží k řízení převodu typů. Pokud má hodnotu null, CultureInfo
použije se pro aktuální vlákno . (Všimněte si, že je to nutné například k převodu řetězce, který představuje hodnotu 1000, na hodnotu Double, protože hodnota 1000 je reprezentována různými jazykovými verzemi.)
- namedParameters
- String[]
Každý parametr v namedParameters
poli získá hodnotu v odpovídajícím prvku v args
poli. Pokud je délka args
parametru větší než délka parametru namedParameters
, předají se zbývající hodnoty argumentů v pořadí.
Návraty
Vrátí vrácenou hodnotu vyvolaného členu.
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 může být převeden pořadačem na typ parametru.
Pořadač najde všechny odpovídající metody. Tyto metody se nacházejí 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. Jakmile vyberete metodu, bude vyvolána. V tomto okamžiku je zaškrtnuté políčko Přístupnost. Hledání může řídit, která sada metod se prohledá na základě atributu přístupnosti přidruženého k metodě. Metoda IBinder.BindToMethod
zodpovídá za výběr metody, která se má vyvolat. Výchozí pořadač vybere nejkonseifnější shodu.
Poznámka
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ý.
Tato metoda není v současné době podporována. Typ můžete načíst pomocí nebo Type.GetTypeAssembly.GetType a použít reflexi na načtený typ.