反射
可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
优点
- 灵活
缺点
-
性能
-
可读性差,难维护调试
使用情境
-
需要动态创建实例
-
动态判断实例中属性或者方法
-
特性
核心类
using System.Reflection;
-
System.Type
【核心】 这个类中包含了很多属性和方法,使用这些属性和方法可以在运行时得到类型的信息 -
Type
类派生于System.Reflection.MemberInfo抽象类
-
获取类型
typeOf
-
获取属性
GetProperties()
-
获取方法的信息
GetMethodInfo()
-
调用方法
MethodInfo
实例上调用Invoke()
方法 -
创建实例
Activator.CreateInstance(Type t)