I have this method:
public List<T> SomeMethod<T>( params ) where T : new()
So I want to call this SomeMethod
which is fine if I know the type:
SomeMethod<Class1>();
But if I only have Class1
at runtime I'm unable to call it?
So how to call SomeMethod
with unknown T type? I got Type by using reflection.
I have the Type of type but SomeMethod<Type | GetType()>
doesn't work.
Update 7. May:
Here is a sample code of what I want to achieve:
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 };
}
}
}
This is a demo taken out of a bigger context.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…