我该如何调用构造函数?

问题描述:

我动态地创建我使用此调用构建自定义LINQ提供程序我对象的实例:我该如何调用构造函数?

object result = Activator.CreateInstance(typeof(T)); 

我的T型实现了有一个构造采取另一种对象的实例抽象类(T实质上一个包装)。我的问题是 - 有没有办法,我可以明确地调用非默认的构造函数,所以我可以摆脱这样的:

MyEntity entity = result as MyEntity; 
if(entity != null) 
    entity.UnderlyingEntity = e; //where e is what I am wrapping 

是,就在Type对象后提供构造函数的参数,就像这样:

object result = Activator.CreateInstance(typeof(T), arg1, arg2, ...); 
+0

很凉爽,比我想象的更简单! – dexter 2010-12-01 16:16:28

您可以使用一个可变超载Activator.CreateInstance Method (Type, Object[]),它会用最匹配的构造函数。

你可以只调用object result = Activator.CreateInstance(typeof(T), e);