反射
1.反射获取程序集的三种方式
- Assembly.Load();//这种方式只需要提供程序集的名称
- Assembly.LoadFile(path);//这种方法需要提供程序集完整的路径
- Assembly.LoadFrom(“XXX.dll”);//需要程序集名称及其后缀名
2.获取类型
assembly.GetTypes();//获取所有类型
assembly.Gettype(“命名空间.类名”);//获取指定类型
3.GetType
Assembly assembly = Assembly.LoadFrom("Ace.dll");
Type type=assembly.Gettype("Ace.UltramanAce");
PropertyInfo[] props=type.GetProperties();
FieldInfo[] fields=type.GetFields();
MethodInfo[] methods=type.GetMethods();
实例化
Assembly自带的CreateInstance()
自带的CreateInstance实例化对象时需要指定命名空间和类名
object o = assembly.CreateInstance("Ace.UltramanAce");
dynamic d = assembly.CreateInstance("Ace.UltramanAce");
多态的使用