Cette documentation est archivée et n’est pas conservée.

IReflect.InvokeMember, méthode

Mise à jour : novembre 2007

Appelle un membre spécifié.

Espace de noms :  System.Reflection
Assembly :  mscorlib (dans mscorlib.dll)

Object InvokeMember(
	string name,
	BindingFlags invokeAttr,
	Binder binder,
	Object target,
	Object[] args,
	ParameterModifier[] modifiers,
	CultureInfo culture,
	string[] namedParameters
)
Object InvokeMember(
	String name,
	BindingFlags invokeAttr,
	Binder binder,
	Object target,
	Object[] args,
	ParameterModifier[] modifiers,
	CultureInfo culture,
	String[] namedParameters
)
function InvokeMember(
	name : String, 
	invokeAttr : BindingFlags, 
	binder : Binder, 
	target : Object, 
	args : Object[], 
	modifiers : ParameterModifier[], 
	culture : CultureInfo, 
	namedParameters : String[]
) : Object

Paramètres

name
Type : System.String

Nom du membre à rechercher.

invokeAttr
Type : System.Reflection.BindingFlags

Un des attributs d'appel BindingFlags. Le paramètre invokeAttr peut être un constructeur, une méthode, une propriété ou un champ. Un attribut d'appel approprié doit être spécifié. 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.

binder
Type : System.Reflection.Binder

Un des indicateurs binaires BindingFlags. Implémente Binder, contenant les propriétés associées à cette méthode.

target
Type : System.Object

Objet sur lequel appeler le membre spécifié. Ce paramètre est ignoré pour les membres statiques.

args
Type : System.Object[]

Tableau d'objets qui contient le nombre, l'ordre et le type des paramètres du membre à appeler. En l'absence de paramètres, ce tableau est vide.

modifiers
Type : System.Reflection.ParameterModifier[]

Tableau d'objets ParameterModifier. 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. Un paramètre peut avoir les attributs suivants : pdIn, pdOut, pdRetval, pdOptional ou pdHasDefault. Ceux-ci représentent [In], [Out], [retval], [optional], et un paramètre par défaut, respectivement. Ils sont utilisés par divers services d'interopérabilité.

culture
Type : System.Globalization.CultureInfo

Instance de CultureInfo permettant de régir la contrainte des 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. Si ce paramètre est null, le CultureInfo du thread en cours est utilisé.

namedParameters
Type : System.String[]

Tableau String de paramètres.

Valeur de retour

Type : System.Object

Membre spécifié.

ExceptionCondition
ArgumentException

invokeAttr est le champ BindingFlags.CreateInstance et un autre indicateur binaire est également défini.

ArgumentException

invokeAttr n'est pas le champ BindingFlags.CreateInstance et name est null.

ArgumentException

invokeAttr n'est pas un attribut d'appel de BindingFlags.

ArgumentException

invokeAttr spécifie à la fois get et set pour une propriété ou un champ.

ArgumentException

invokeAttr spécifie à la fois un champ set et une méthode Invoke. Les args sont fournis pour un champ get.

ArgumentException

Plusieurs arguments sont spécifiés pour un champ set.

MissingFieldException

Impossible de trouver le champ ou la propriété.

MissingMethodException

La méthode est introuvable.

SecurityException

Un membre privé est appelé sans le ReflectionPermission nécessaire.

La méthode à appeler doit être accessible et fournir la correspondance la plus proche avec la liste d'arguments spécifiée, avec les contraintes du binder et des attributs d'appel spécifiés.

Une méthode est appelée si le nombre de paramètres de la déclaration de méthode est identique au nombre d'arguments de la liste d'arguments spécifiée et si le binder peut convertir le type de chaque argument en type du paramètre.

Remarque :

Le tableau de modificateurs de paramètres passé à la méthode InvokeMember doit contenir un seul modificateur de paramètres. Seul le premier modificateur de paramètres est pris en considération lors de l'identification de l'argument à passer par référence lorsqu'il est exposé à COM.

Le binder identifie toutes les méthodes correspondantes en fonction du type de liaison demandé (BindingFlags.InvokeMethod, GetProperties, etc). L'ensemble des méthodes est filtré selon leur nom, leur nombre d'arguments et un ensemble de modificateurs de recherche définis dans le binder. Une fois sélectionnée, la méthode est appelée et l'accessibilité est vérifiée à ce stade. La recherche peut contrôler quel ensemble de méthodes est recherché en fonction de l'attribut d'accessibilité associé à la méthode. La méthode BindToMethod sélectionne la méthode à appeler. Le binder par défaut sélectionne la correspondance la plus spécifique.

Les restrictions d'accès sont ignorées pour le code d'un niveau de confiance suffisant. En d'autres termes, les constructeurs privés, les méthodes, les champs et les propriétés sont accessibles et peuvent être appelés à l'aide de la réflexion lorsque le code est d'un niveau de confiance suffisant.

L'exemple suivant obtient la valeur de la propriété Now.

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


import System.*;
import System.Reflection.*;

public class MainClass
{   
    public static void main(String[] args)
    {
        Type tDate = Type.GetType("System.DateTime");
        Object result = tDate.InvokeMember("Now", 
            BindingFlags.GetProperty, null, null, new Object[0]);
        Console.WriteLine(result.ToString());
    } //main
} //MainClass


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0
Afficher: