IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) Method

Définition

Appelle un membre spécifié.Invokes a specified member.

public:
 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);
public 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);
abstract member InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj

Paramètres

name
String String String

Nom du membre à rechercher.The name of the member to find.

invokeAttr
BindingFlags BindingFlags BindingFlags

Un des attributs d'appel BindingFlags.One of the BindingFlags invocation attributes. Le paramètre invokeAttr peut être un constructeur, une méthode, une propriété ou un champ.The invokeAttr parameter may be a constructor, method, property, or field. Un attribut d’appel approprié doit être spécifié.A suitable invocation attribute must be specified. Il est possible d'appeler le membre par défaut d'une classe en passant une chaîne vide ("") en tant que nom du membre.Invoke the default member of a class by passing the empty string ("") as the name of the member.

binder
Binder Binder Binder

Un des indicateurs binaires BindingFlags.One of the BindingFlags bit flags. Implémente Binder, contenant les propriétés associées à cette méthode.Implements Binder, containing properties related to this method.

target
Object Object Object

Objet sur lequel appeler le membre spécifié.The object on which to invoke the specified member. Ce paramètre est ignoré pour les membres statiques.This parameter is ignored for static members.

args
Object[]

Tableau d'objets qui contient le nombre, l'ordre et le type des paramètres du membre à appeler.An array of objects that contains the number, order, and type of the parameters of the member to be invoked. En l'absence de paramètres, ce tableau est vide.This is an empty array if there are no parameters.

modifiers
ParameterModifier[]

Tableau d'objets ParameterModifier.An array of ParameterModifier objects. La longueur de ce tableau est égale à celle du paramètre args représentant les attributs d'argument du membre appelé dans les métadonnées.This array has the same length as the args parameter, representing the invoked member's argument attributes in the metadata. Un paramètre peut avoir les attributs suivants : pdIn, pdOut, pdRetval, pdOptional ou pdHasDefault.A parameter can have the following attributes: pdIn, pdOut, pdRetval, pdOptional, and pdHasDefault. Ceux-ci représentent [In], [Out], [retval], [optional], et un paramètre par défaut, respectivement.These represent [In], [Out], [retval], [optional], and a default parameter, respectively. Ils sont utilisés par divers services d'interopérabilité.These attributes are used by various interoperability services.

culture
CultureInfo CultureInfo CultureInfo

Instance de CultureInfo utilisée pour régir la contrainte des types.An instance of CultureInfo used to govern the coercion of types. Par exemple, culture convertit un String représentant 1 000 en une valeur Double, car 1 000 est représenté de différentes manières selon la culture.For example, culture converts a String that represents 1000 to a Double value, since 1000 is represented differently by different cultures. Si ce paramètre est null, le CultureInfo du thread en cours est utilisé.If this parameter is null, the CultureInfo for the current thread is used.

namedParameters
String[]

Tableau String de paramètres.A String array of parameters.

Retours

Membre spécifié.The specified member.

Exceptions

Plusieurs arguments sont spécifiés pour un champ set.More than one argument is specified for a field set.

Le champ ou la propriété est introuvable.The field or property cannot be found.

La méthode est introuvable.The method cannot be found.

Un membre privé est appelé sans le ReflectionPermission nécessaire.A private member is invoked without the necessary ReflectionPermission.

Exemples

L’exemple suivant obtient la valeur de la Now propriété.The following example obtains the value of the Now property.

#using <System.DLL>

using namespace System;
using namespace System::Reflection;

#define NULL 0
void main()
{
   Type^ tDate = Type::GetType( L"System.DateTime" );
   Object^ result = tDate->InvokeMember( L"Now", BindingFlags::GetProperty, nullptr, NULL, gcnew array<Object^>(0) );
   Console::WriteLine( result->ToString() );
}

using System;
using System.Reflection;

public class MainClass 
{ 
    public static void Main(string[] args)
    {
        Type tDate = typeof(System.DateTime);
        Object result = tDate.InvokeMember("Now", 
            BindingFlags.GetProperty, null, null, new Object[0]);
        Console.WriteLine(result.ToString());
    }
}
Imports System.Reflection

Public Class MainClass
    Public Overloads Shared Sub Main(ByVal args() As String)
        Dim tDate As Type = GetType(System.DateTime)
        Dim result As [Object] = tDate.InvokeMember("Now", _
            BindingFlags.GetProperty, Nothing, Nothing, New [Object](-1) {})
        Console.WriteLine(result.ToString())
    End Sub
End Class

Remarques

La méthode à appeler doit être accessible et fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée, sous les contraintes des attributs de binder et d’appel spécifiés.The method that is to be invoked must be accessible and provide the most specific match with the specified argument list, under the constraints of the specified binder and invocation attributes.

Une méthode est appelée si le nombre de paramètres dans la déclaration de méthode est égal au nombre d’arguments dans la liste d’arguments spécifiée et que le type de chaque argument peut être converti par le Binder en type du paramètre.A method is invoked if the number of parameters in the method declaration equals the number of arguments in the specified argument list, and the type of each argument can be converted by the binder to the type of the parameter.

Notes

Le tableau de modificateurs de paramètres passé à InvokeMember la méthode doit contenir un seul modificateur de paramètre.The array of parameter modifiers passed to the InvokeMember method must contain a single parameter modifier. Seul le premier modificateur de paramètre est pris en compte lors de la détermination de l’argument qui doit être passé par référence lorsqu’il est exposé à COM.Only the first parameter modifier is considered when determining which argument needs to be passed by reference when exposed to COM.

Le Binder trouve toutes les méthodes correspondantes, conformément au type de liaison demandé (BindingFlags.InvokeMethod, GetProperties, etc.).The binder finds all matching methods, in accordance with the type of binding requested (BindingFlags.InvokeMethod, GetProperties, and so on). L’ensemble de méthodes est filtré par le nom, le nombre d’arguments et un ensemble de modificateurs de recherche définis dans le Binder.The set of methods is filtered by the name, number of arguments, and a set of search modifiers defined in the binder. Une fois la méthode sélectionnée, elle est appelée et l’accessibilité est vérifiée à ce stade.After the method is selected, it is invoked, and accessibility is checked at that point. La recherche peut contrôler l’ensemble de méthodes dans lequel la recherche est effectuée en fonction de l’attribut d’accessibilité associé à la méthode.The search may control which set of methods is searched based upon the accessibility attribute associated with the method. BindToMethodsélectionne la méthode à appeler.BindToMethod selects the method to be invoked. Le binder par défaut sélectionne la correspondance la plus spécifique.The default binder selects the most specific match.

Les restrictions d’accès sont ignorées pour le code d’un niveau de confiance totale.Access restrictions are ignored for fully trusted code. Autrement dit, les constructeurs, les méthodes, les champs et les propriétés privés sont accessibles et appelés via la réflexion chaque fois que le code est d’un niveau de confiance suffisant.That is, private constructors, methods, fields, and properties can be accessed and invoked through reflection whenever the code is fully trusted.

S’applique à

Voir aussi