Riflessione: acquisizione dei parametri generici da un’istanza System.Type

Se ho il seguente codice:

MyType anInstance = new MyType(); Type type = anInstance.GetType(); 

Come posso scoprire quale parametro di tipo “anInstance” è stato istanziato con, osservando la variabile di tipo? È ansible ?

Usa Type.GetGenericArguments . Per esempio:

 using System; using System.Collections.Generic; public class Test { static void Main() { var dict = new Dictionary(); Type type = dict.GetType(); Console.WriteLine("Type arguments:"); foreach (Type arg in type.GetGenericArguments()) { Console.WriteLine(" {0}", arg); } } } 

Produzione:

 Type arguments: System.String System.Int32 

Utilizzare Type.GetGenericArguments (). Per esempio:

 using System; using System.Reflection; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { MyType anInstance = new MyType(); Type type = anInstance.GetType(); foreach (Type t in type.GetGenericArguments()) Console.WriteLine(t.Name); Console.ReadLine(); } } public class MyType { } } 

Uscita: Int32