Binder.BindToMethod Methode

Definitie

Selecteert een methode die moet worden aangeroepen vanuit de opgegeven set methoden, op basis van de opgegeven argumenten.

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);
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

Parameters

bindingAttr
BindingFlags

Een bitsgewijze combinatie van BindingFlags waarden.

match
MethodBase[]

De set methoden die kandidaten zijn voor overeenkomende methoden. Wanneer een Binder object bijvoorbeeld wordt gebruikt door InvokeMember, geeft deze parameter de set methoden op die weerspiegeling heeft vastgesteld dat mogelijke overeenkomsten zijn, meestal omdat ze de juiste lidnaam hebben. De standaard implementatie die wordt geleverd door DefaultBinder wijzigingen in de volgorde van deze matrix.

args
Object[]

De argumenten die worden doorgegeven. De binder kan de volgorde van de argumenten in deze matrix wijzigen; De standaardbinding wijzigt bijvoorbeeld de volgorde van argumenten als de names parameter wordt gebruikt om een andere volgorde dan positionele volgorde op te geven. Als een binder-implementatie argumenttypen samengeeft, kunnen de typen en waarden van de argumenten ook worden gewijzigd.

modifiers
ParameterModifier[]

Een matrix van parameteraanpassingen waarmee binding kan worden gebruikt met parameterhandtekeningen waarin de typen zijn gewijzigd. Deze parameter wordt niet gebruikt door de standaard-binder-implementatie.

culture
CultureInfo

Een exemplaar hiervan CultureInfo wordt gebruikt om de dwang van gegevenstypen te beheren, in binder-implementaties die typen dwingen. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.

names
String[]

De parameternamen, als parameternamen moeten worden overwogen bij het vergelijken of null als argumenten als puur positioneel moeten worden behandeld. Parameternamen moeten bijvoorbeeld worden gebruikt als argumenten niet in positionele volgorde worden opgegeven.

state
Object

Nadat de methode is geretourneerd, state bevat het een door de binder opgegeven object waarmee de volgorde van argumenten wordt bijgehouden. De binder maakt dit object en de binder is de enige consument van dit object. Als state niet null wanneer BindToMethod retourneert, u moet state doorgeven aan de methode ReorderArgumentArray(Object[], Object) als u bijvoorbeeld args wilt herstellen naar de oorspronkelijke volgorde, zodat u de waarden van ref parameters (ByRef parameters in Visual Basic) kunt ophalen.

Retouren

De overeenkomende methode.

Uitzonderingen

Voor de standaardbinding match bevat u meerdere methoden die even goed overeenkomen met args. Bevat bijvoorbeeld args een MyClass object dat de IMyClass interface implementeert en match bevat een methode die een methode gebruikt MyClass en een methode die gebruikt IMyClass.

Voor de standaardbinding match bevat geen methoden die de argumenten argsin kunnen accepteren.

Voor de standaardbinding match is null of een lege matrix.

Opmerkingen

De standaardbinding houdt rekening met zowel parameters met waarden als params matrices (ParamArray matrices in Visual Basic). Het is dus mogelijk om een overeenkomst te vinden in gevallen waarin args en match niet hetzelfde aantal elementen bevat.

Met de binder kan een client de matrix van argumenten weer toewijzen aan de oorspronkelijke vorm als de argumentmatrix is gemanipuleerd door BindToMethod. Gebruik deze functie voor opnieuw toewijzen om terug te komen op basis van verwijzingsargumenten wanneer dergelijke argumenten aanwezig zijn. Wanneer u argumenten op naam doorgeeft, wordt de volgorde van de argumentmatrix door de binder gewijzigd. De state parameter houdt de volgorde van argumenten bij, waardoor de methode van ReorderArgumentArray de binder de volgorde van de argumentmatrix kan wijzigen in de oorspronkelijke vorm.

De BindToMethod methode wordt gebruikt door de Type.InvokeMember methode.

Als een binder-implementatie toestaat dat tekenreekswaarden worden geconverteerd naar numerieke typen, is de culture parameter nodig om een tekenreeks te converteren die 1000 vertegenwoordigt naar een Double waarde, omdat 1000 anders wordt weergegeven door verschillende culturen. De standaardbinding doet dergelijke tekenreeksen niet.

Van toepassing op

Zie ook