比如有這樣一個泛型:Demo.GenericsSimple<T,TT> 我想要通過反射建立一個Demo.GenericsSimple<string,int>的執行個體可以通過下面的格式進行建立:
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空間.User`形參數量N[[1形參類型全名,形參類型所在的程 序集名稱],[2形參類型全名,形參類型所在的程式集名稱],[3形參類型全名,形參類型所在的程式集名稱]......N]")
代碼:
namespace Demo
{
public class GenericsSimple<T,TT> where T:class where TT:struct
{}
class Program
{
static void Main(string[] args)
{
var o = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("Demo.GenericsSimple`2[[System.String, mscorlib],[System.Int32, mscorlib]]");
Console.WriteLine("{0}",o==null?"null":o.GetType().FullName);
Console.WriteLine("===end===");
Console.Read();
}
}
}