Binder.BindToMethod Metoda

Definicja

Wybiera metodę do wywołania z danego zestawu metod na podstawie podanych argumentów.

public:
 abstract System::Reflection::MethodBase ^ BindToMethod(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::MethodBase ^> ^ match, cli::array <System::Object ^> ^ % args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ names, [Runtime::InteropServices::Out] System::Object ^ % state);
public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object?[] args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? names, out object? state);
public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
abstract member BindToMethod : System.Reflection.BindingFlags * System.Reflection.MethodBase[] * Object[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] * obj -> System.Reflection.MethodBase
Public MustOverride Function BindToMethod (bindingAttr As BindingFlags, match As MethodBase(), ByRef args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, names As String(), ByRef state As Object) As MethodBase

Parametry

bindingAttr
BindingFlags

Bitowa kombinacja BindingFlags wartości.

match
MethodBase[]

Zestaw metod, które są kandydatami do dopasowania. Na przykład gdy Binder obiekt jest używany przez InvokeMemberparametr , ten parametr określa zestaw metod, które odbicia zostały określone jako możliwe dopasowania, zazwyczaj dlatego, że mają prawidłową nazwę elementu członkowskiego. Domyślna implementacja zapewniana przez DefaultBinder zmianę kolejności tej tablicy.

args
Object[]

Przekazane argumenty. Binder może zmienić kolejność argumentów w tej tablicy; Na przykład domyślny binder zmienia kolejność argumentów, jeśli names parametr jest używany do określania kolejności innej niż kolejność pozycyjna. Jeśli typy argumentów implementacji bindera są współwłaścicielami, można również zmienić typy i wartości argumentów.

modifiers
ParameterModifier[]

Tablica modyfikatorów parametrów, które umożliwiają powiązanie do pracy z podpisami parametrów, w których typy zostały zmodyfikowane. Domyślna implementacja powiązania nie używa tego parametru.

culture
CultureInfo

Wystąpienie klasy , które służy do kontrolowania CultureInfo przymusu typów danych w implementacjach binder, które są typami coerce. Jeśli culture parametr ma nullwartość , CultureInfo jest używany element dla bieżącego wątku.

names
String[]

Nazwy parametrów, jeśli nazwy parametrów mają być brane pod uwagę podczas dopasowywania, lub null jeśli argumenty mają być traktowane jako czysto pozycyjne. Na przykład nazwy parametrów muszą być używane, jeśli argumenty nie są podane w kolejności pozycyjnej.

state
Object

Po powrocie state metody zawiera obiekt dostarczany przez binder, który śledzi kolejność argumentów. Binder tworzy ten obiekt, a binder jest jedynym odbiorcą tego obiektu. Jeśli state nie jest null, gdy BindToMethod zwraca, Musisz przekazać state do metody ReorderArgumentArray(Object[], Object), jeśli chcesz przywrócić args do oryginalnej kolejności, na przykład, aby można było pobrać wartości parametrów ref (ByRef parametrów w Visual Basic).

Zwraca

Zgodna metoda.

Wyjątki

W przypadku domyślnego powiązania zawiera wiele metod, match które są równie dobrymi dopasowaniami dla elementu args. Na przykład args zawiera MyClass obiekt, który implementuje IMyClass interfejs i match zawiera metodę, która przyjmuje MyClass metodę i metodę, która przyjmuje IMyClassmetodę .

Dla domyślnego powiązania nie zawiera metod, match które mogą akceptować argumenty podane w pliku args.

Dla domyślnego powiązania match jest null lub pusta tablica.

Uwagi

Domyślny binder uwzględnia oba parametry, które mają wartości i params tablice (ParamArray tablice w Visual Basic). W związku z tym można znaleźć dopasowanie w przypadkach, w których args i match nie zawierają tej samej liczby elementów.

Binder umożliwia klientowi mapowania tablicy argumentów z powrotem na oryginalną formę, jeśli tablica argumentów została zmanipulowana przez BindToMethodelement . Użyj tej funkcji ponownego mapowania, aby wrócić do argumentów referencyjnych, gdy takie argumenty są obecne. Gdy przekazujesz argumenty według nazwy, binder zmienia kolejność tablicy argumentów. state Parametr śledzi kolejność argumentów, umożliwiając więc metodę bindera ReorderArgumentArray zmiany kolejności tablicy argumentów na jej oryginalną formę.

Metoda BindToMethod jest używana przez metodę Type.InvokeMember .

Jeśli implementacja powiązania zezwala na przymus wartości ciągów do typów liczbowych, culture parametr jest niezbędny do przekonwertowania ciągu reprezentującego wartość 1000 na Double wartość, ponieważ 1000 jest reprezentowane inaczej przez różne kultury. Domyślny binder nie wykonuje takich przymusów ciągów.

Dotyczy

Zobacz też