TypeBuilder.InvokeMember Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.