Как вы вызываете универсальный метод, если вы знаете только параметр типа во время выполнения?
У меня есть этот метод:
<code>public List<T> SomeMethod<T>( params ) where T : new() </code>
Итак, я хочу назвать этоSomeMethod
что хорошо, если я знаю тип:
<code>SomeMethod<Class1>(); </code>
Но если бы я толькоClass1
во время выполнения я не могу позвонить?
Так как позвонитьSomeMethod
с неизвестным типом T? Я получил Тип с помощью отражения.
У меня есть Тип типа, ноSomeMethod<Type | GetType()>
не работает.
Update 7. May:
Вот пример кода того, чего я хочу достичь:
<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>
Это демонстрация, взятая из более широкого контекста.