Como você chama um método genérico se você só conhece o parâmetro type em tempo de execução?
Eu tenho esse método:
<code>public List<T> SomeMethod<T>( params ) where T : new() </code>
Então eu quero chamar issoSomeMethod
o que é bom se eu souber o tipo:
<code>SomeMethod<Class1>(); </code>
Mas se eu tiver apenasClass1
em tempo de execução não consigo chamá-lo?
Então, como ligarSomeMethod
com o tipo T desconhecido? Eu tenho Type usando reflexão.
Eu tenho o tipo de tipo, masSomeMethod<Type | GetType()>
não funciona.
Atualização 7 de maio:
Aqui está um exemplo de código do que eu quero alcançar:
<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 é uma demonstração retirada de um contexto maior.