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));
}
}
}