我有这样的方法:
public List<T> SomeMethod<T>( params ) where T : new()
所以我想称之为SomeMethod
这是很好的,如果我知道是什么类型:
SomeMethod<Class1>();
但是,如果我只有Class1
在运行时,我无法打电话了吗?
因此,如何调用SomeMethod
未知T类? 我类型使用反射。
我有型,但的类型SomeMethod<Type | GetType()>
SomeMethod<Type | GetType()>
不起作用。
更新7月:
这里是什么,我想实现一个示例代码:
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 };
}
}
}
这是取出一个更大的范围内的演示。