说说反射发生(发出动态方法和程序集,System. Reflection.Emit )在实际程序中的应用

品铭工作室 2008-02-22 08:59:23
我想知道反射发生的技术在软件开发中的实际应用,如是怎么样用,有什么好处等,希望大家可以结合实际开发情况谈下自己的看法
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinaterry 2008-02-24
  • 打赏
  • 举报
回复
System.Reflection.Emit -> 反射发出; 而不是反射发生喔...
品铭工作室 2008-02-24
  • 打赏
  • 举报
回复
我所说的是反射发生(System. Reflection.Emit ),不是反射(System. Reflection)
shinaterry 2008-02-23
  • 打赏
  • 举报
回复
System.Reflection.Emit 命名空间所包含的类允许你从零开始动态的构建程序集与类型, 在需要时动态的产生代码...

类似这样的操作,实际很少开发人员会需要,但这对于.NET框架可是一种凭据,证明有这样的工具可以解决有这样需求的业务问题...

*注意:反射发出并不能产生源代码, 换句话说, 你在这里的努力并不能创建VB.Net或C#代码. 相反, 反射发出的类会创建 MSIL op 代码...

举个例子, 使用反射发出可能会是这样子的:

1. 创建一个新的程序集(程序集是动态的存在于内存中或把它们持久化到磁盘上)

2. 在程序集内部,创建一个模块(module)

3. 在模块内部,创建一个类型

4. 给类型添加属性和方法

5. 产生属性和方法内部的代码..

^o^ 确切的说, 当你使用反射发出的类产生代码时, 以上描述的是你实际中要遵循的过程...
marvelstack 2008-02-23
  • 打赏
  • 举报
回复
反射式一个很强大的运行时绑定机制。以下是比较常见的应用。
1.Windows控件和Web控件的数据绑定实现需要用到反射。
2.编写NUnit或FXCop之类的应用程序,需要通过反射才能实现其功能。
3.编写IDE,需要用到反射,比如VS中,属性窗口中的属性事件列表的获取。
4.对于实现Addin方式的应用程序,使用反射是一个比较容易的处理方式,不过过分使用反射程序性能会有所影响。
fht123 2008-02-22
  • 打赏
  • 举报
回复
通过反射,可以动态加载你的程序集,也可以得到你想要的对象实例,
这方面介绍网上也很多。
lonlykiller 2008-02-22
  • 打赏
  • 举报
回复
插件~
一品梅 2008-02-22
  • 打赏
  • 举报
回复
UP!

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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