C#中的反射(一)

原创 2004年07月15日 13:07:00

很多时候需要根据类的信息来创建实例,需要通过带参数的构造函数来创建实例的例子如下:
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#中的反射(一)
举报原因:
原因补充:

(最多只允许输入30个字)