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

Reflection (C# e Visual Basic)

La reflection fornisce oggetti (di tipo Type) che descrivono assembly, moduli e tipi. È possibile utilizzare la reflection per creare in modo dinamico un'istanza di un tipo, associare il tipo a un oggetto esistente o ottenere il tipo da un oggetto esistente, nonché richiamarne i metodi o accedere ai campi e alle proprietà dell'oggetto. La reflection consente inoltre di accedere agli eventuali attributi utilizzati nel codice. Per ulteriori informazioni, vedere Estensione di metadati mediante attributi.

Di seguito viene riportato un esempio di reflection che utilizza il metodo statico GetType, ereditato da tutti i tipi dalla classe di base Object, per ottenere il tipo di una variabile:


// Using GetType to obtain type information:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);


L'output è il seguente:

System.Int32

Nell'esempio seguente viene utilizzata la reflection per ottenere il nome completo dell'assembly caricato.


// Using Reflection to get information from an Assembly:
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);


L'output è il seguente:

mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

NotaNota

Le parole chiave di C# protected e internal non hanno significato in IL e non sono utilizzate dalle API Reflection. I termini corrispondenti in IL sono Family e Assembly. Per identificare un metodo internal tramite reflection, utilizzare la proprietà IsAssembly. Per identificare un metodo protected internal, utilizzare la proprietà IsFamilyOrAssembly.

La reflection può essere utile nelle seguenti situazioni:

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft