我创建了一个泛型类,用于实例化另一个未知类。
我们通过下面的代码在运行时传递一个类的名称,并且我们已经有一个带有参数构造函数的类,所以我传递参数通过激活器创建类的实例。
但是,当我运行下面的代码时,它会抛出以下错误:
'类型的构造函数 eDebitCreditNote.Models.GenericClass`1 [[eDebitCreditNote.Models.DC_Header_Vendor, eDebitCreditNote,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null]]'找不到。'
object[] args = new object[1] { values };
string classname = tblform.HeaderTable;
var sometype = Type.GetType("eDebitCreditNote.Models."+classname);
var genericType = typeof(GenericClass<>).MakeGenericType(new[] { sometype });
var instance = Activator.CreateInstance(genericType,args);
通用类代码:
namespace eDebitCreditNote.Models
{
public class GenericClass<T>
{
public T ObjectCreate<T>(object[] args)
{
return (T)Activator.CreateInstance(typeof(T), args);
}
public IDictionary<string, object> FieldValues { get; set; }
}
}