Condividi tramite


Generics e reflection (Guida per programmatori C#)

Poiché Common Language Runtime (CLR) ha accesso alle informazioni sui tipi generici in fase di esecuzione, è possibile utilizzare reflection per ottenere informazioni sui tipi generici, analogamente a quanto avviene per i tipi non generici. Per ulteriori informazioni, vedere Generics nel runtime (Guida per programmatori C#).

Per attivare le informazioni di runtime per i tipi generici, in .NET Framework 2.0 sono stati aggiunti nuovi membri alla classe Type. Vedere la documentazione su queste classi per ulteriori informazioni su come utilizzare questi metodi e proprietà. Lo spazio dei nomi System.Reflection.Emit contiene inoltre i nuovi membri che supportano i generics. Per informazioni, vedere Procedura: definire un tipo generico tramite reflection emit.

Per un elenco delle condizioni non variabili per i termini utilizzati nella reflection generica, vedere le osservazioni sulla proprietà IsGenericType.

Nome del membro di System.Type

Descrizione

IsGenericType

Restituisce true se un tipo è generico.

GetGenericArguments

Restituisce una matrice di oggetti Type che rappresentano gli argomenti di tipo forniti per un tipo costruito oppure i parametri di tipo di una definizione di un tipo generico.

GetGenericTypeDefinition

Restituisce la definizione di un tipo generico sottostante per il tipo costruito corrente.

GetGenericParameterConstraints

Restituisce una matrice di oggetti Type che rappresentano i vincoli sul parametro di tipo generico corrente.

ContainsGenericParameters

Restituisce true se il tipo o uno dei tipi o metodi che lo contengono comprendono parametri di tipo per cui non sono stati forniti tipi specifici.

GenericParameterAttributes

Ottiene una combinazione di flag GenericParameterAttributes che descrivono i vincoli speciali del parametro di tipo generico corrente.

GenericParameterPosition

Per un oggetto Type che rappresenta un parametro di tipo, ottiene la posizione del parametro di tipo nell'elenco dei parametri di tipo della definizione di un tipo generico o della definizione di un metodo generico che ha dichiarato il parametro di tipo.

IsGenericParameter

Ottiene un valore che indica se l'oggetto Type corrente rappresenta un parametro di tipo di una definizione di un tipo o metodo generico.

IsGenericTypeDefinition

Ottiene un valore che indica se l'oggetto Type corrente rappresenta una definizione di un tipo generico da cui è possibile costruire altri tipi generici. Restituisce true se il tipo rappresenta la definizione di un tipo generico.

DeclaringMethod

Restituisce il metodo generico che ha definito il parametro di tipo generico corrente oppure null se il parametro di tipo non è stato definito da un metodo generico.

MakeGenericType

Sostituisce gli elementi di una matrice di tipi ai parametri di tipo della definizione di tipo generico corrente e restituisce un oggetto Type che rappresenta il risultante tipo costruito.

Per attivare le informazioni di runtime per i metodi generici, nella classe MethodInfo sono inoltre stati aggiunti diversi nuovi membri. Per un elenco delle condizioni non variabili per i termini utilizzati per i metodi generici, vedere le osservazioni sulla proprietà IsGenericMethod.

Nome del membro di System.Reflection.MemberInfo

Descrizione

IsGenericMethod

Restituisce true se un metodo è generico.

GetGenericArguments

Restituisce una matrice di oggetti Type che rappresentano gli argomenti di tipo di un metodo generico costruito o i parametri di tipo di una definizione di un metodo generico.

GetGenericMethodDefinition

Restituisce la definizione di un metodo generico sottostante per il metodo costruito corrente.

ContainsGenericParameters

Restituisce true se il metodo o uno dei tipi che lo contengono comprendono parametri di tipo per cui non sono stati forniti tipi specifici.

IsGenericMethodDefinition

Restituisce true se l'oggetto MethodInfo corrente rappresenta la definizione di un metodo generico.

MakeGenericMethod

Sostituisce gli elementi di una matrice di tipi ai parametri di tipo della definizione di metodo generico corrente e restituisce un oggetto MethodInfo che rappresenta il risultante metodo costruito.

Vedere anche

Riferimenti

Generics (Guida per programmatori C#)

Concetti

Guida per programmatori C#

Reflection e tipi generici

Generics in .NET Framework