Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo IReflect.InvokeMember

Richiama un membro specificato.

Spazio dei nomi:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

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

Parametri

name
Tipo: System.String
Nome del membro da ricercare.
invokeAttr
Tipo: System.Reflection.BindingFlags
Uno degli attributi di chiamata di BindingFlags. Il parametro invokeAttrpuò essere un costruttore, un metodo, una proprietà o un campo. È necessario specificare un attributo di chiamata appropriato. Richiamare il membro predefinito di una classe passando una stringa vuota ("") come nome del membro.
binder
Tipo: System.Reflection.Binder
Uno dei flag di bit di BindingFlags. Implementa l'oggetto Binder, contenente le proprietà relative a questo metodo.
target
Tipo: System.Object
Oggetto su cui richiamare il membro specificato. Il parametro viene ignorato nel caso dei membri statici.
args
Tipo: System.Object[]
Matrice di oggetti che contiene il numero, l'ordine e il tipo dei parametri del membro da richiamare. Si tratta di una matrice vuota se non sono disponibili parametri.
modifiers
Tipo: System.Reflection.ParameterModifier[]
Matrice di oggetti ParameterModifier. Questa matrice ha la stessa lunghezza del parametro args che rappresenta gli attributi degli argomenti del membro richiamato nei metadati. Un parametro può avere i seguenti attributi: pdIn, pdOut, pdRetval, pdOptional e pdHasDefault. Questi rappresentano rispettivamente [In], [Out], [retval], [optional] e un parametro predefinito. Questi attributi sono utilizzati da vari servizi di interoperabilità.
culture
Tipo: System.Globalization.CultureInfo
Istanza di CultureInfo utilizzata per regolare l'assegnazione forzata dei tipi. Ad esempio, culture converte un oggetto String che rappresenta il numero 1000 in un valore Double, dal momento che 1000 è rappresentato in modo diverso nelle varie impostazioni cultura. Se questo parametro è null, viene utilizzato l'oggetto CultureInfo per il thread corrente.
namedParameters
Tipo: System.String[]
Matrice di parametri String.

Valore restituito

Tipo: System.Object
Membro specificato.

EccezioneCondizione
ArgumentException

invokeAttr è BindingFlags.CreateInstance; viene impostato anche un altro flag di bit.

ArgumentException

invokeAttr non è BindingFlags.CreateInstance e name è null.

ArgumentException

invokeAttr non è un attributo di chiamata da BindingFlags.

ArgumentException

invokeAttr specifica sia get sia set per una proprietà o un campo.

ArgumentException

invokeAttr specifica sia un metodo Invoke che un oggetto set di campo. Vengono forniti oggetti args per un oggetto get di campo.

ArgumentException

Sono stati specificati più argomenti per un metodo set di campo.

MissingFieldException

Impossibile trovare il campo o la proprietà.

MissingMethodException

Impossibile trovare il metodo.

SecurityException

Viene richiamato un membro privato senza l'oggetto ReflectionPermission necessario.

Il metodo da richiamare deve essere accessibile e deve fornire la massima aderenza all'elenco di argomenti specificato, in base ai vincoli del gestore di associazione e degli attributi di chiamata specificati.

Viene chiamato un metodo se il numero di parametri nella dichiarazione del metodo è uguale al numero di argomenti nell'elenco di argomenti specificato e il tipo di ogni argomento può essere convertito dal gestore di associazione nel tipo del parametro.

NotaNota

La matrice di modificatori di parametri passata al metodo InvokeMember deve contenere un singolo modificatore di parametri. Viene considerato solo il primo modificatore di parametri quando si determina quale argomento occorre passare per riferimento una volta esposto a COM.

Il gestore di associazione rileva tutti i metodi corrispondenti in base al tipo di associazione richiesta (BindingFlags.InvokeMethod, GetProperties e così via). Il gruppo di metodi viene filtrato per nome, numero di argomenti e gruppo di modificatori di ricerca definiti nel gestore di associazione. Dopo essere stato selezionato, il metodo viene richiamato e ne viene controllata l'accessibilità. È possibile specificare in quali set di metodi eseguire la ricerca in base all'attributo di accessibilità associato al metodo. BindToMethod seleziona il metodo da richiamare. Il gestore di associazione predefinito seleziona la corrispondenza più specifica.

Le restrizioni di accesso vengono ignorate nel caso di codice completamente attendibile. È pertanto possibile accedere e richiamare costruttori privati, metodi, campi e proprietà attraverso la funzionalità di reflection quando il codice è completamente attendibile.

Nell'esempio riportato di seguito viene ottenuto il valore della proprietà 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());
    }
}


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft