(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性

1.反射加载dll、读取moudle、类、方法、特性

(1)模块信息获取

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第1张图片

(2)方法调用


2.反射创建对象、反射+简单工厂+配置文件(破坏单例,创建泛型)

(1)程序的可配置可扩展:反射是动态的依赖的是字符串

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第2张图片

调用

(2)利用反射破环单例,可访问单例中的私有构造方法

调用有参构造函数

(3)利用反射创建泛型

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第3张图片

 GenericClass`3,其中“`3”是占位符,表示三个类型

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第4张图片
3.反射调用实例方法、静态方法(调用私有方法、调用泛型方法)

(1)实例方法、静态方法

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第5张图片

多参数

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第6张图片

(2)反射调用私有方法,属性值BindingFlags.Instance;BindingFlags.NoPublic

(3)反射调用泛型方法        

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第7张图片

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第8张图片
(4).反射字段和属性。分别获取值和设置值

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第9张图片

属性使用type.GetProperties(),而字段则使用type.GetFields(),如

(5)反射模型转换

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第10张图片

封装调用

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第11张图片

 

也可以使用第三方工具JsonConvert

(七)笔记.net学习之反射、加载dll、读取moudle、类、方法、特性_第12张图片
5.反射的好处和局限

       (1)优点:动态,灵活性强

       (2)缺点:写起来复杂;避开编译器得检查;性能问题;

你可能感兴趣的:(.net,语言进阶,c#,.netcore,学习)