很多时候需要根据类的信息来创建实例,需要通过带参数的构造函数来创建实例的例子如下:
string assemblyFile;
string implClass;
string[] impCtorSig;//构造函数的参数类型数组例如“System.String”等
protected object CreateInstance(object[] ctorArgs)
{
//Load Assembly
Assembly ass = Assembly.LoadFrom(assemblyFile);
//Get Class,必须是带命名空间的类名
Type t = ass.GetType(implClass);
//构造函数的参数类型
Type[] ctorSigArr = Type.GetTypeArray(implCtorSig);
//得到构造函数信息
ConstructorInfo ctorInfo = t.GetConstructor(ctorSigArr);
//通过参数列表构造实例
return ctorInfo.Invoke(ctorArgs);
}
比较常见的不通过构造函数来创建对象实例的方式是:
object o = Activator.CreateInstance(t);
C#中的反射(一)
最新推荐文章于 2022-10-20 08:53:41 发布