TypeBuilder.InvokeMember Methode

Definitie

Roept het opgegeven lid aan. De methode die moet worden aangeroepen, moet toegankelijk zijn en de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst, onder de beperkingen van de opgegeven binder- en aanroepkenmerken.

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);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
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);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]
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);
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);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
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

Parameters

name
String

De naam van het lid dat moet worden aangeroepen. Dit kan een constructor, methode, eigenschap of veld zijn. Er moet een geschikt aanroepkenmerk worden opgegeven. Houd er rekening mee dat het mogelijk is om het standaardlid van een klasse aan te roepen door een lege tekenreeks door te geven als de naam van het lid.

invokeAttr
BindingFlags

Het aanroepkenmerk. Dit moet een bitvlag zijn van BindingFlags.

binder
Binder

Een object dat de binding, dwang van argumenttypen, het aanroepen van leden en het ophalen van objecten mogelijk maakt met behulp van MemberInfo reflectie. Als binder is null, wordt de standaard binder gebruikt. Zie Binder.

target
Object

Het object waarop het opgegeven lid moet worden aangeroepen. Als het lid statisch is, wordt deze parameter genegeerd.

args
Object[]

Een lijst met argumenten. Dit is een matrix van objecten die het aantal, de volgorde en het type van de parameters van het lid bevatten dat moet worden aangeroepen. Als er geen parameters zijn, moet dit null zijn.

modifiers
ParameterModifier[]

Een matrix van dezelfde lengte als args met elementen die de kenmerken vertegenwoordigen die zijn gekoppeld aan de argumenten van het lid dat moet worden aangeroepen. Aan een parameter zijn kenmerken gekoppeld in de metagegevens. Ze worden gebruikt door verschillende interoperabiliteitsservices. Zie de metagegevensspecificaties voor meer informatie.

culture
CultureInfo

Een exemplaar dat CultureInfo wordt gebruikt om de dwang van typen te bepalen. Als dit null is, wordt het CultureInfo voor de huidige thread gebruikt. (Houd er rekening mee dat dit nodig is om bijvoorbeeld een tekenreeks te converteren die 1000 vertegenwoordigt naar een dubbele waarde, omdat 1000 anders wordt weergegeven door verschillende culturen.)

namedParameters
String[]

Elke parameter in de namedParameters matrix haalt de waarde op in het bijbehorende element in de args matrix. Als de lengte args groter is dan de lengte van namedParameters, worden de resterende argumentwaarden op volgorde doorgegeven.

Retouren

Retourneert de retourwaarde van het aangeroepen lid.

Kenmerken

Uitzonderingen

Deze methode wordt momenteel niet ondersteund voor onvolledige typen.

Opmerkingen

Er wordt een methode aangeroepen als het aantal parameters in de methodedeclaratie gelijk is aan het aantal argumenten in de opgegeven argumentenlijst en het type van elk argument kan worden geconverteerd door de binder naar het type van de parameter.

De binder vindt alle overeenkomende methoden. Deze methoden worden gevonden op basis van het type binding dat is aangevraagd (BindingFlags.InvokeMethod, BindingFlags.GetProperties, enzovoort). De set methoden wordt gefilterd op de naam, het aantal argumenten en een set zoekaanpassingen die zijn gedefinieerd in de binder. Nadat de methode is geselecteerd, wordt deze aangeroepen. De toegankelijkheid wordt op dat moment gecontroleerd. De zoekopdracht kan bepalen welke set methoden wordt doorzocht op basis van het toegankelijkheidskenmerk dat aan de methode is gekoppeld. De IBinder.BindToMethod methode is verantwoordelijk voor het selecteren van de methode die moet worden aangeroepen. De standaardbinding selecteert de meest specifieke overeenkomst.

Note

Toegangsbeperkingen worden genegeerd voor volledig vertrouwde code. Dat wil gezegd, privéconstructors, methoden, velden en eigenschappen kunnen worden geopend en aangeroepen met behulp van Weerspiegeling wanneer de code volledig wordt vertrouwd.

Deze methode wordt momenteel niet ondersteund. U kunt het type ophalen met behulp van Type.GetType of Assembly.GetType reflectie gebruiken voor het opgehaalde type.

Van toepassing op