反射

1,反射获取程序集的三种方式

  Assembly assenbly=Assembly.LoadFile()//这种只需要提供程序集的名称

  Assembly assenbly=Assembly.LoadFile(Path)//这种需要程序集 的路径

  Assembly assenbly=Assembly.Load("Ace.dll") //这种需要程序集的名称和后缀名

2,获取类型

  Type[] types=assenbly.GetType();//获取所有类

  Type[] types=assenbly.GetExportedTypes();//获取所有公共类

  types.First(c=>c.name=...);

  Type type=assenbly.GetType(“命名空间.类名”);//获取指定类名的类

3.GetType

  PropertyInfo[] props=types.Getproperties();//获取所有属性

  PropertyInfo[] field=types.GetFields();//获取所有字段

  1.   PropertyInfo[] methods=types.GetMethods();//获取所有方法

4,实例化 Assembly自带的CreateInstance

  object o=assembly.CreateInstance("命名空间.类名");

  o.Name="艾斯奥特曼"//报错

  dynamic d=assembly.CreateInstance("命名空间.类名");//自动转换渲染 没有自动提示,容易出错

  d.Name="艾斯奥特曼"

5,使用多态

  以上改为://接口作为层和层的衔接

  接口 d=(接口)assembly.CreateInstance("命名空间.类名");//自动转换渲染 没有自动提示,容易出错

  d.Name="艾斯奥特曼"

6,配置文件

  在AppSetting里面获取字符段,string configuration=ConfigurationManager.AppSettings["key"];

  使用反射可以只在配置文件修改配置文件

 7,在有构造函数的类使用

  Assembly assenbly=Assembly.LoadFile(Path)//这种需要程序集 的路径

  Type type=assenbly.GetType(“命名空间.类名”);//获取指定类名的类

 IUltraman b= (IUltraman )Activor.CreateInstrance(type,Params 构造函数的参数);

 

 

   

  

上一篇:03_Swagger2的使用与前后端协议


下一篇:System.Data.SQLite.dll 未安装或者版本冲突,按下面步骤操作即可 1、从Nuget卸载所有项目的System.Data.SQLite.dll 和SqlSugar,检查引用中是否还