日期:2014-05-17  浏览次数:20744 次

C#利用反射实例化List<className>(未知类名的情况下)
class Staff
{
    .....;
}

class Main()
{
    void Run()
    {
        List<Staff> staffs = new List<Staff>();
    }
}

问题:如果不知道Staff类的类名 只有一个string(值为"Staff") 如何像下面那样实例化List<>

List<Staff> staffs = new List<Staff>();

(我只知道如何利用反射实例化Staff 但是不知道如何实例化List<Staff>)

先谢谢大家了!
C#反射

------解决方案--------------------
var d1 = typeof(List<>);
Type[] typeArgs = { Type.GetType("Namespace.Staff") };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/