Wie rufen Sie eine generische Methode auf, wenn Sie den Typparameter nur zur Laufzeit kennen?

Ich habe diese Methode:

<code>public List<T> SomeMethod<T>( params ) where T : new()
</code>

Also möchte ich das nennenSomeMethod Das ist in Ordnung, wenn ich den Typ kenne:

<code>SomeMethod<Class1>();
</code>

Aber wenn ich nur habeClass1 zur Laufzeit kann ich es nicht aufrufen?

Also, wie man anruftSomeMethod mit unbekanntem T-Typ? Ich habe Type durch Reflektion erhalten.

Ich habe den Typ des Typs aberSomeMethod<Type | GetType()> funktioniert nicht

Update 7. Mai:

Hier ist ein Beispielcode für das, was ich erreichen möchte:

<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>

Dies ist eine Demo aus einem größeren Kontext.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage