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

Definition

Richiama un membro specificato.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
Public 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

Nome del membro da ricercare.The name of the member to find.

invokeAttr
BindingFlags

Uno degli attributi di chiamata di BindingFlags.One of the BindingFlags invocation attributes. Il parametro invokeAttrpuò essere un costruttore, un metodo, una proprietà o un campo.The invokeAttr parameter may be a constructor, method, property, or field. È necessario specificare un attributo di chiamata appropriato.A suitable invocation attribute must be specified. Richiamare il membro predefinito di una classe passando una stringa vuota ("") come nome del membro.Invoke the default member of a class by passing the empty string ("") as the name of the member.

binder
Binder

Uno dei flag di bit di BindingFlags.One of the BindingFlags bit flags. Implementa l'oggetto Binder, contenente le proprietà relative a questo metodo.Implements Binder, containing properties related to this method.

target
Object

Oggetto su cui richiamare il membro specificato.The object on which to invoke the specified member. Il parametro viene ignorato nel caso dei membri statici.This parameter is ignored for static members.

args
Object[]

Matrice di oggetti che contiene il numero, l'ordine e il tipo dei parametri del membro da richiamare.An array of objects that contains the number, order, and type of the parameters of the member to be invoked. Si tratta di una matrice vuota se non sono disponibili parametri.This is an empty array if there are no parameters.

modifiers
ParameterModifier[]

Matrice di oggetti ParameterModifier.An array of ParameterModifier objects. Questa matrice ha la stessa lunghezza del parametro args che rappresenta gli attributi degli argomenti del membro richiamato nei metadati.This array has the same length as the args parameter, representing the invoked member's argument attributes in the metadata. Un parametro può avere i seguenti attributi: pdIn, pdOut, pdRetval, pdOptional e pdHasDefault.A parameter can have the following attributes: pdIn, pdOut, pdRetval, pdOptional, and pdHasDefault. Questi rappresentano rispettivamente [In], [Out], [retval], [optional] e un parametro predefinito.These represent [In], [Out], [retval], [optional], and a default parameter, respectively. Questi attributi sono utilizzati da vari servizi di interoperabilità.These attributes are used by various interoperability services.

culture
CultureInfo

Istanza di CultureInfo usata per regolare la coercizione dei tipi.An instance of CultureInfo used to govern the coercion of types. Ad esempio, culture converte una stringa che rappresenta il numero 1000 in un valore Double, dal momento che 1000 è rappresentato in modo diverso nelle varie impostazioni cultura.For example, culture converts a string that represents 1000 to a Double value, since 1000 is represented differently by different cultures. Se questo parametro è null, viene utilizzato l'oggetto CultureInfo per il thread corrente.If this parameter is null, the CultureInfo for the current thread is used.

namedParameters
String[]

Matrice di parametri di tipo stringa.A string array of parameters.

Returns

Object

Membro specificato.The specified member.

Exceptions

Sono stati specificati più argomenti per un metodo set di campo.More than one argument is specified for a field set.

Non è possibile trovare il campo o la proprietà.The field or property cannot be found.

Impossibile trovare il metodo.The method cannot be found.

Viene richiamato un membro privato senza l'oggetto ReflectionPermission necessario.A private member is invoked without the necessary ReflectionPermission.

Examples

Nell'esempio seguente viene ottenuto il valore della proprietà Now.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

Remarks

Il metodo da richiamare deve essere accessibile e fornire massima corrispondenza con l'elenco di argomenti specificato, in conformità ai vincoli del binder e degli attributi di chiamata specificati.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.

Viene richiamato un metodo se il numero di parametri nella dichiarazione di metodo è uguale al numero di argomenti nell'elenco di argomenti specificato e il tipo di ogni argomento può essere convertito dal gestore di associazione al tipo del parametro.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.

Note

La matrice di modificatori di parametro passati al metodo InvokeMember deve contenere un solo modificatore di parametro.The array of parameter modifiers passed to the InvokeMember method must contain a single parameter modifier. Viene considerato solo il primo modificatore di parametro quando si determina quale argomento deve essere passato per riferimento quando viene esposto a COM.Only the first parameter modifier is considered when determining which argument needs to be passed by reference when exposed to COM.

Il Binder trova tutti i metodi corrispondenti, in base al tipo di binding richiesto (BindingFlags.InvokeMethod, GetPropertiese così via).The binder finds all matching methods, in accordance with the type of binding requested (BindingFlags.InvokeMethod, GetProperties, and so on). Il set di metodi viene filtrato in base al nome, al numero di argomenti e a un set di modificatori di ricerca definiti nel gestore di associazione.The set of methods is filtered by the name, number of arguments, and a set of search modifiers defined in the binder. Dopo che il metodo è stato selezionato, viene richiamato e l'accessibilità viene controllata in quel momento.After the method is selected, it is invoked, and accessibility is checked at that point. La ricerca può controllare il set di metodi in cui viene eseguita la ricerca in base all'attributo di accessibilità associato al metodo.The search may control which set of methods is searched based upon the accessibility attribute associated with the method. BindToMethod seleziona il metodo da richiamare.BindToMethod selects the method to be invoked. Il binder predefinito seleziona la corrispondenza più specifica.The default binder selects the most specific match.

Le restrizioni di accesso vengono ignorate per il codice completamente attendibile.Access restrictions are ignored for fully trusted code. Ovvero, i costruttori privati, i metodi, i campi e le proprietà possono essere accessibili e richiamati tramite reflection ogni volta che il codice è completamente attendibile.That is, private constructors, methods, fields, and properties can be accessed and invoked through reflection whenever the code is fully trusted.

Applies to

See also