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);

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/marising/article/details/42072

c#中的反射

  • 2008年07月05日 08:53
  • 44KB
  • 下载

unity3D C#的反射使用场景

C#的反射理解以及案例解释
  • u011611902
  • u011611902
  • 2015-10-17 07:38:24
  • 3183

反射 C# myself

  • 2011年03月23日 23:07
  • 565KB
  • 下载

理解C#反射机制

反射是.NET中的重要机制,通过反射可以得到*.exe或*.dll等程序集内部的接口、类、方法、字段、属性、特性等信息,还可以动态创建出类型实例并执行其中的方法。...
  • xiaouncle
  • xiaouncle
  • 2016-11-01 13:12:32
  • 3142

C#中的反射原理

原理其实很简单,.net所编写的程序集包含两个重要部分:IL(中间语言代码) 和metadata(元数据)。我们编写的代码中不是有很多很多的类吗,类有很多很多的成员,在编译代码的时候,元数据表就根据...
  • u014800094
  • u014800094
  • 2016-10-03 15:24:13
  • 2179

【C#】:浅谈反射机制

什么是反射?         反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代...
  • u010929604
  • u010929604
  • 2015-08-06 08:35:49
  • 6180

使用C++模拟实现 C# 中的反射功能

最近在看设计模式的相关内容, 看到抽象工厂模式这章节的时候, 书上介绍说, 抽象工厂模式在替换具体工厂类型的时候比较方便, 但是在涉及添加一个新的产品类的时候, 需要修改现有的工厂来支持这个新的产品,...
  • zhyh1435589631
  • zhyh1435589631
  • 2016-03-24 19:47:41
  • 389

利用反射拿到并递归C#类中的各个字段名字及类型

以下方法实现了遍历一个class中所有的字段, 并且递归遍历sub class。 private StringBuilder _properties = new StringBuilder();   ...
  • muzizongheng
  • muzizongheng
  • 2013-07-10 15:41:37
  • 1864

C#中反射的用途有哪些

反射的用途: (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 (2)使用Module了解包含模块的程序集以及模块中...
  • whazhl
  • whazhl
  • 2014-08-07 13:08:24
  • 1134

C# 反射详解

  • xunzaosiyecao
  • xunzaosiyecao
  • 2016-02-28 10:04:17
  • 7058
收藏助手
不良信息举报
您举报文章:C#中的反射(一)
举报原因:
原因补充:

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