反射的好处!!!

sh1618 2008-06-06 12:55:22
反射是动态加载dll中的类 动态查询
到底有什么好处呢???
...全文
533 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wty814022051 2010-05-08
  • 打赏
  • 举报
回复
反射的性能低容易出现异常错误但是它可以让程序变得更灵活。
Magic_YJL 2008-06-06
  • 打赏
  • 举报
回复
再加帮顶
Magic_YJL 2008-06-06
  • 打赏
  • 举报
回复
关注+学习
sh1618 2008-06-06
  • 打赏
  • 举报
回复
学习中。。。。。。
shoushii 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 axiaodan 的回复:]
就是动态创建数据层对象!
是BLL和DAL 的弱依赖关系!!
[/Quote]
ORM的实现,很大程度上依赖于反射,并且这个反射一般不会成为应用程序的瓶颈。适当的使用缓存技术,往往会在性能上更近一步。

.NET的数据绑定,控件内部也使用了反射。特别是object.equal方法,是反射所有成员来判断对象是否相等。
比起这个来,ORM的反射相对较小,所以有的时候需要重载equal方法来判断对象是否相等。
叶子 2008-06-06
  • 打赏
  • 举报
回复
博客园的jillzhang 写过一篇《反射(Reflection)的性能分析》
值得看看!
http://www.cnblogs.com/jillzhang/archive/2006/08/10/473326.aspx
sh1618 2008-06-06
  • 打赏
  • 举报
回复
就是动态创建数据层对象!
是BLL和DAL 的弱依赖关系!!
叶子 2008-06-06
  • 打赏
  • 举报
回复
基类对任何派生类一无所知,
但System.Object对象,
却可以通过GetType()获取基类的类型(GetType()是不允许被重写的)

所以要想使用基类的方法获取派生类的类型等信息,就需要用到反射了。
最常见的是设计模式中的反射工厂模式
shoushii 2008-06-06
  • 打赏
  • 举报
回复
空洞的谈论反射有什么好处是没有任何意义的,如果你在实际过程中遇到了难题,除非使用反射才能减小复杂度,那么这个好处就是明显的。如果你用常规方法可以处理这个问题,那么反射就无所谓好处而言。
elvis_gao 2008-06-06
  • 打赏
  • 举报
回复
反射appDomain 的程序集


反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码


反射的层次模型:


注:层次间都是一对多的关系

反射的作用:

1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现 有对象中获取类型

2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。

3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。

应用要点:

1. 现实应用程序中很少有应用程序需要使用反射类型

2. 使用反射动态绑定需要牺牲性能

3. 有些元数据信息是不能通过反射获取的

4. 某些反射类型是专门为那些clr 开发编译器的开发使用的,所以你要意识到不是所有的反射类型都是适合每个人的。

elvis_gao 2008-06-06
  • 打赏
  • 举报
回复
反射就是解析,可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
举个例子:在工厂模式中,工厂利用反射动态创建数据访问层对象,例如可以创建基于SQL server数据库的数据访问0层对象,也可以创建基于ORACLE数据库的数据访问层对象。当数据库发生变化,程序不需要改变,只需要在webconfig中设置一下。
lovehongyun 2008-06-06
  • 打赏
  • 举报
回复
有得必有失.反射可能会让程序变得更灵活.但会增加开销

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧