我需要使用反射来动态创建一个C#类型。这是我的场景:我正在编写一个基类,它需要实例化某个对象作为其初始化的一部分。基类将不知道它应该实例化的对象的类型,但派生类将会。所以,我想让派生类在base()调用中将类型传递给基类。代码如下所示:如何使用反射动态实例化类型?
public abstract class MyBaseClass
{
protected MyBaseClass(Type myType)
{
// Instantiate object of type passed in
/* This is the part I'm trying to figure out */
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass() : base(typeof(Whatever))
{
}
}
换句话说,基类正在委托其派生类型选择要实例化的对象类型。
有人可以协助吗?
+1,不知道为什么这是倒票。平衡它。 – JaredPar 2011-03-31 00:16:55
已接受,从我的+1 – 2011-03-31 00:48:05
有点受限:“使用该类型的”default“构造函数创建指定类型的实例。”只有默认的构造函数。在构造过程中使用参数时,这可能更有用:使用最符合指定参数的构造函数创建指定类型的实例=> http://msdn.microsoft.com/en-us/library/4b0ww1we.aspx – 2013-08-26 09:02:58