type multiple method generic create c# .net reflection generic-type-argument

c# - multiple - Reflection-Obtener los parámetros genéricos de una instancia System.Type



generics in c# (2)

Si tengo el siguiente código:

MyType<int> anInstance = new MyType<int>(); Type type = anInstance.GetType();

¿Cómo puedo averiguar con qué tipo de parámetro (s) se creó una instancia de "una instancia", mirando la variable de tipo? Es posible ?


Use 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); } } }

Salida:

Type arguments: System.String System.Int32


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