社区
分析与设计
帖子详情
说说反射发生(发出动态方法和程序集,System. Reflection.Emit )在实际程序中的应用
品铭工作室
2008-02-22 08:59:23
我想知道反射发生的技术在软件开发中的实际应用,如是怎么样用,有什么好处等,希望大家可以结合实际开发情况谈下自己的看法
...全文
181
7
打赏
收藏
说说反射发生(发出动态方法和程序集,System. Reflection.Emit )在实际程序中的应用
我想知道反射发生的技术在软件开发中的实际应用,如是怎么样用,有什么好处等,希望大家可以结合实际开发情况谈下自己的看法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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!
procyon:Procyon是一套Java元编程工具,包括一个丰富的
反射
API,一个用于运行时代码生成的LINQ风格的表达式树API和一个Java反编译器。
Procyon是一套Java元编程工具,专注于代码生成和分析。 它包括以下库: 核心框架 编译器工具
集
(实验性) (实验性) Procyon库可从Maven Central的组ID org.bitbucket.mstrobel下org.bitbucket.mstrobel 。 核心框架 procyon-core框架包含其他Procyon API使用的通用支持类。 它的功能包括字符串操作,
集
合扩展,文件系统/路径实用
程序
,可冻结对象和
集
合,附加的数据存储以及某些运行时类型帮助器。 反思框架 procyon-
reflection
框架提供了丰富的
反射
和代码生成API,并完全支持泛型,通配符和其他高级Java类型概念。 它基于.NET的System.
Reflection
和System.
Reflection
.E
mit
API,旨在解决Java核心
反射
API的许多缺点,这些缺点为泛型类型检查提供
procyon:HG Repo开发部门的非正式分支
Procyon是一套Java元编程工具,专注于代码生成和分析。 它包括以下库: 核心框架 反思框架 表情框架 编译器工具
集
(实验性) Procyon库可从Maven Central的组ID org.bitbucket.mstrobel下org.bitbucket.mstrobel 。 核心框架 procyon-core框架包含其他Procyon API使用的通用支持类。 它的功能包括字符串操作,
集
合扩展,文件系统/路径实用
程序
,可冻结对象和
集
合,附加的数据存储以及某些运行时类型帮助器。 反思框架 procyon-
reflection
框架提供了丰富的
反射
和代码生成API,并完全支持泛型,通配符和其他高级Java类型概念。 它基于.NET的System.
Reflection
和System.
Reflection
.E
mit
API,旨在解决Java核心
反射
API的许多缺点,这些缺点为泛型类型检查
java反编译工具源码-procyon:Procyonjavadecompiler-Procyon是CanisMinor
中
的一个双星系统
java反编译工具源码 这是一个早期的。 Procyon 已移至 . 有关最新版本,请参阅 Procyon是一套 Java 元编程工具,专注于代码生成和分析。 它包括以下库: 核心框架
反射
框架 表达式框架 编译器工具
集
(实验性) Procyon 库可从Maven Central 的组 ID org.bitbucket.mstrobel下org.bitbucket.mstrobel 。 核心框架 procyon-core框架包含其他 Procyon API 使用的通用支持类。 它的功能包括字符串操作、
集
合扩展、文件系统/路径实用
程序
、可冻结对象和
集
合、附加数据存储和一些运行时类型助手。
反射
框架 procyon-
reflection
框架提供了丰富的
反射
和代码生成 API,完全支持泛型、通配符和其他高级 Java 类型概念。 它基于 .NET 的System.
Reflection
和System.
Reflection
.E
mit
API,旨在解决核心 Java
反射
API 的许多缺点,后者为泛型类型检查提供了相当有限且繁琐的支持。 它的代码生成工具包括一个TypeBuilder 、 Met
Rocks:基于编译器API(Roslyn + Mocks)的模拟库
岩石 基于编译器API(Roslyn + Mocks)的模拟库 概述 那里有很棒的库,例如和 ,那么为什么我决定在2015年创建YAML(又一个模拟库)? 本质上有两个原因。 第一个原因与模拟库如何完成代码生成有关。 大多数(如果不是全部)使用的
方法
最终使用System.
Reflection
.E
mit
,这需要了解IL。 这不是一件小事。 此外,在调试过程
中
无法将生成的代码插入。 我想使用新的Compiler API(Roslyn)编写一个模拟库,以查看是否可以使该模拟的代码生成过程更加轻松,并在必要时允许开发人员介入该代码。 另一个原因是能够为给定的
程序
集
预先生成模拟,而不是在测试
中
动态
生成它们。 这是可以执行的操作,但是我希望能够在可以轻松修改项目文件并自动生成这些模拟文件的地方进行操作。 这就是Rocks可以做的。 通过
动态
生成C#代码并使用Compiler API对其进行编译
bfcfs:在 F#
中
为 CLR 优化的 Brainfuck 编译器
bfcfs bfcfs是编程语言的优化编译器,面向。 它利用了多种优化技术,包括文章
中
详述的大部分技术。 编译器生成无依赖(除了 mscorlib)、支持 PEVerify 的 .NET
程序
集
,可以在 .NET 和 Mono 上运行。 编译器是用 4.0 编写的,它没有第三方依赖项。 但是,它利用 System.
Reflection
.E
mit
生成字节码,目前 (2015-06-06) 在 .NET Core 上不可用。 它分为两个模块: bfcfs ,编译器和bfc ,命令行界面。 bfcfs 有一个公共 API,可以单独使用。 Brainfuck 的实现版本是相当标准的。 解析器会忽略所有非命令字符,但它也支持使用分号作为注释标记; a 之间的所有字符; 并且下一个换行符被忽略。 数据数组的大小是固定的,但在编译时可配置(默认为 30,000)。 单元格是 8 位无符号整数。
分析与设计
13,190
社区成员
5,761
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章