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 InvokeMemberprogram , 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 dostarczana przez DefaultBinder program zmienia kolejność 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 powiązania są przekształcane, można również zmienić typy i wartości argumentów.

modifiers
ParameterModifier[]

Tablica modyfikatorów parametrów, które umożliwiają powiązanie pracy z sygnaturami 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 wymuszają typy. Jeśli culture parametr ma nullwartość , CultureInfo jest używany 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 element 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 null jest zwracany BindToMethod , musisz przekazać state do ReorderArgumentArray(Object[], Object) metody , jeśli chcesz przywrócić args oryginalną kolejność, na przykład, aby można było pobrać wartości parametrów ref (ByRef parametry w Visual Basic).

Zwraca

Zgodna metoda.

Wyjątki

Dla 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.

W przypadku domyślnego powiązania match jest null lub jest pustą tablicą.

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 istnieje możliwość znalezienia dopasowania 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 odwołania, gdy takie argumenty są obecne. Gdy przekazujesz argumenty według nazwy, binder zmienia kolejność tablicy argumentów. Parametr state śledzi kolejność argumentów, umożliwiając w ten sposób 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 wymuszanie wartości ciągów do typów liczbowych, culture parametr jest niezbędny do konwersji ciągu reprezentującego Double 1000 na wartość, ponieważ 1000 jest reprezentowane inaczej przez różne kultury. Domyślny binder nie wykonuje takich przymusów ciągów.

Dotyczy

Zobacz też