2008-11-16 9 views

Respuesta

48

Utilice Type.GetGenericArguments. Por ejemplo:

using System; 
using System.Collections.Generic; 

public class Test 
{ 
    static void Main() 
    { 
     var dict = new Dictionary<string, int>(); 

     Type type = dict.GetType(); 
     Console.WriteLine("Type arguments:"); 
     foreach (Type arg in type.GetGenericArguments()) 
     { 
      Console.WriteLine(" {0}", arg); 
     } 
    } 
} 

de salida:

Type arguments: 
    System.String 
    System.Int32 
8

Use Type.GetGenericArguments(). Por ejemplo:

using System; 
using System.Reflection; 

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

Salida: Int32

Cuestiones relacionadas