码迷,mamicode.com
首页 > 其他好文 > 详细

反射机制

时间:2019-07-13 13:30:44      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:位置   数据类型   逻辑   缺点   声明   绕过   签名   tab   cti   

什么是反射:

   是.NET中的重要机制,通过反射,可以在运行时获得,NET中每一个类型的成员,包括按方法、属性、事件,以及构造函数等

反射的用途:

  使用Assmbly定义和加载程序集

  使用Modue了解包含模块的程序集以及模块中的类等

  使用ConstructorInfo了解构造函数的名称、参数、访问修饰符

  使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符

  使用FieldInfo了解字段的名称、访问修饰符

  使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等

  使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值

  使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等

反射动态加载程序集:

  Assembly

  Assembly.LoadFrom

  Activator.CreateInstance

反射的使用场景

    有时不知道具体的类型,可以通过dll去得到类的对象  

 某些特殊方法,传过来的是泛型类,需要通过反射处理某些特殊的业务

 通过DataTable和List<T>的相互转化时需要用到反射

反射的优缺点

    优点:

    程序无需编译,只需进行将更新Dll换掉即可完成程序的更新和升级

    将程序和配置文件相结合,可以发出功能随意增删改查的软件,具备了极大的灵活性和扩展性

    反射提高了程序的灵活性,降低了耦合性,提高了自适应能力,也提高了程序的复用性

  缺点:

    首先带来的一个很大的问题就是——性能问题,使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。

    使用反射会使程序内部逻辑模糊化,程序员在调试代码的时候希望看到清晰的程序逻辑,而反射却绕过了源代码,因此会带来一定的维护性问题,同时反射代码比相应的直接代码更加复杂。

反射机制

标签:位置   数据类型   逻辑   缺点   声明   绕过   签名   tab   cti   

原文地址:https://www.cnblogs.com/bly319/p/11180060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!