¿Cómo se llama a un método genérico si solo conoce el parámetro de tipo en tiempo de ejecución?
Tengo este método:
<code>public List<T> SomeMethod<T>( params ) where T : new() </code>
Así que quiero llamar a estoSomeMethod
lo cual está bien si conozco el tipo:
<code>SomeMethod<Class1>(); </code>
Pero si solo tengoClass1
en tiempo de ejecución no puedo llamarlo?
Entonces, ¿cómo llamarSomeMethod
con tipo T desconocido? Obtuve el tipo utilizando la reflexión.
Tengo el tipo de tipo peroSomeMethod<Type | GetType()>
no funciona
Actualización 7. Mayo:
Aquí hay un código de ejemplo de lo que quiero lograr:
<code>using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace ConsoleApplication63 { public class DummyClass { } public class Class1 { public string Name; } class AssemblyTypesReflection { static void Main(string[] args) { object obj = new Class1() { Name = "John" } ; Assembly assembly = Assembly.GetExecutingAssembly(); var AsmClass1 = (from i in assembly.GetTypes() where i.Name == "Class1" select i).FirstOrDefault(); var list = SomeMethod<AsmClass1>((AsmClass1)obj); //Here it fails } static List<T> SomeMethod<T>(T obj) where T : new() { return new List<T> { obj }; } } } </code>
Esta es una demo sacada de un contexto más grande.