using System; using System.Text; namespace CB.Common { public class GenericUtils { /// /// 泛型类反射实例化 /// /// /// 需反射泛型类的类型型 格式:类路劲,类所属程序集 /// 当前泛型类型定义的类型参数组成的类型数组的元素 /// public static T CreateInstance(string typeName, Type[] typeArgs) { if (null == typeArgs || 0 >= typeArgs.Length) return (T)Activator.CreateInstance(Type.GetType(typeName, false, true)); string[] t = typeName.Split(','); StringBuilder sp = new StringBuilder(); sp.Append(t[0]); sp.Append("`"); sp.Append(typeArgs.Length); sp.Append("["); foreach (var item in typeArgs) { sp.AppendFormat("[{0}]", item.AssemblyQualifiedName); } sp.Append("],"); sp.Append(t[1]); return (T)Activator.CreateInstance(Type.GetType(sp.ToString(), false, true)); } } }