Binder.BindToMethod 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.
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 null
wartość , 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 IMyClass
metodę .
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.