反射:来自System.Reflection命名空间的帮助类库;
高级语言——计算机语言的过程:编译:dll/exe
metadata:元数据——数据清单:描述了dll中包含了那些东西
IL:中间语言——也是面向对象语言
反射:可以读取并使用dll中metadata,使用dll中的功能;
反射需要过程:
第一步:获取程序集
Assembly assembly1=Assembly.Load("类库名称");
Assembly assembly2=Assembly.LoadFrom("类库名称.dll");
Assembly assembly3=Assembly.LoadFile("全路径+类库名称.dll");
第二步:获取类型
Type type=assembly1.GetType("");类的全名称(命名空间+类名)
第三步:创建对象
object? oInstrance=Activator.CreateInstrance(type);
//第四步:调用方法
//1、oInstrance是Object类型;
//2、因为C#是强类型语言,编译时要确定类型,编译以左边为准左边是Object类型,编译器认为当前是Object类型,因为Object类型没有
//Query(),所以编译错误;
oInstrance.Query();
//(类名)oInstrance.Query();
第四步:类型转换
IDbHelper dbHelper=oInstrance as IDbHelper;
第五步:调用方法
dbHelper.Query();