TypeBuilder.InvokeMember Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wywołuje określony element członkowski. Wywoływana metoda musi być dostępna i zapewnić najbardziej specyficzne dopasowanie z określoną listą argumentów w ramach ograniczeń określonych atrybutów powiązania i wywołania.
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
Nazwa elementu członkowskiego do wywołania. Może to być konstruktor, metoda, właściwość lub pole. Należy określić odpowiedni atrybut wywołania. Należy pamiętać, że można wywołać domyślny element członkowski klasy, przekazując pusty ciąg jako nazwę elementu członkowskiego.
- invokeAttr
- BindingFlags
Atrybut wywołania. Musi to być flaga bitowa z BindingFlags
.
- binder
- Binder
Obiekt, który umożliwia powiązanie, przymus typów argumentów, wywołanie elementów członkowskich i pobieranie obiektów przy użyciu odbicia MemberInfo
. Jeśli element binder to null
, jest używany domyślny binder. Zobacz: .
- target
- Object
Obiekt, na którym ma wywołać określony element członkowski. Jeśli element członkowski jest statyczny, ten parametr jest ignorowany.
- args
- Object[]
Lista argumentów. Jest to tablica obiektów, która zawiera liczbę, kolejność i typ parametrów elementu członkowskiego do wywołania. Jeśli nie ma parametrów, powinno to mieć wartość null.
- modifiers
- ParameterModifier[]
Tablica o tej samej długości co args
elementy reprezentujące atrybuty skojarzone z argumentami elementu członkowskiego do wywołania. Parametr zawiera atrybuty skojarzone z nim w metadanych. Są one używane przez różne usługi współdziałania. Aby uzyskać więcej informacji, zobacz specyfikacje metadanych.
- culture
- CultureInfo
Wystąpienie CultureInfo
używane do zarządzania przymusem typów. Jeśli jest to wartość null, CultureInfo
jest używany element dla bieżącego wątku. (Należy pamiętać, że jest to konieczne, na przykład przekonwertowanie ciągu, który reprezentuje wartość 1000 na wartość Podwójna, ponieważ 1000 jest reprezentowane inaczej przez różne kultury).
- namedParameters
- String[]
Każdy parametr w tablicy namedParameters
pobiera wartość w odpowiednim elemecie w tablicy args
. Jeśli długość parametru args
jest większa niż długość , pozostałe wartości argumentów namedParameters
są przekazywane w kolejności.
Zwraca
Zwraca zwracaną wartość wywoływanego elementu członkowskiego.
Wyjątki
Ta metoda nie jest obecnie obsługiwana w przypadku niekompletnych typów.
Uwagi
Metoda zostanie wywołana, jeśli liczba parametrów w deklaracji metody jest równa liczbie argumentów na określonej liście argumentów, a typ każdego argumentu można przekonwertować przez binder na typ parametru.
Binder znajdzie wszystkie pasujące metody. Te metody można znaleźć na podstawie typu żądanego powiązania (BindingFlags.InvokeMethod, BindingFlags.GetProperties itd.). Zestaw metod jest filtrowany według nazwy, liczby argumentów i zestawu modyfikatorów wyszukiwania zdefiniowanych w binderze. Po wybraniu metody zostanie wywołana. Dostępność jest sprawdzana w tym momencie. Wyszukiwanie może kontrolować, który zestaw metod jest przeszukiwany na podstawie atrybutu ułatwień dostępu skojarzonego z metodą. Metoda IBinder.BindToMethod
jest odpowiedzialna za wybranie metody do wywołania. Domyślny binder wybiera najbardziej specyficzne dopasowanie.
Uwaga
Ograniczenia dostępu są ignorowane dla w pełni zaufanego kodu. Oznacza to, że dostęp do prywatnych konstruktorów, metod, pól i właściwości można uzyskać i wywołać przy użyciu odbicia za każdym razem, gdy kod jest w pełni zaufany.
Ta metoda nie jest obecnie obsługiwana. Typ można pobrać przy użyciu metody Type.GetType lub Assembly.GetType i użyć odbicia dla pobranego typu.