**反射:**Reflection
定义:
动态获取类型信息,动态创建对象,动态访问成员的过程。
作用:
在编译时无法了解类型,在运行时获取类型信息,创建对象,访问成员。
举例说明:
1:在写万能单利模式的时候,由于不确定继承该万能单利的类型,所以用到了(反射)typeof
万能单利模式会在下一页附上。
流程
1.得到数据类型
2.动态创建对象
3查看类型信息(了解本身信息,成员信息)
常用类
1.取得数据类型Type (最常用)
方式一:Type.GetType(“类型全名”);
适合于类型的名称已知
方式二:obj.GetType();
适合于类型名未知,类型未知,存在已有对象
方式三:typeof(类型)
适合于已知类型
方式四:Assembly.Load(“XXX”).GetType(“名字”);
适合于类型在另一个程序集中
Type类常用Get系列方法 Is系列属性。
2.MethodInfo(方法)
重要方法: Invoke
使用时需要引入命名空间using System.Reflection;
3.PropertyInfo(属性)
重要方法:SetValue GetValue
4.FieldInfo(字段)
重要方法:SetValue GetValue
5.ConstructInfo(构造方法)
重要方法:Invoke