深入理解CIL与动态程序集的角色
1. 编译与验证程序集
在开始探讨动态程序集之前,我们先了解一下如何编译和验证CIL(Common Intermediate Language)程序集。可以使用 ilasm.exe 编译CIL代码,使用 peverify.exe 验证程序集,最后执行程序。在命令提示符中执行以下命令:
ilasm CarClient.il
peverify CarClient.exe
CarClient.exe
2. 理解动态程序集
构建复杂的.NET应用程序时,使用CIL编程是一项颇具挑战的任务。一方面,CIL是一种表达能力极强的编程语言,能与CTS(Common Type System)允许的所有编程结构进行交互;另一方面,编写原始的CIL代码既繁琐又容易出错。
2.1 静态程序集与动态程序集的区别
- 静态程序集 :是直接从磁盘存储加载的.NET二进制文件,在CLR请求时,它们以物理文件的形式存在于硬盘的某个位置。每次编译C#源代码都会生成一个静态程序集。
- 动态程序集 :使用
System.Reflection.Emit命名空间提供的类型在内存中即时创建。该命名空间使我们能够在运行时创建程序集及其模块、类型定义和CIL实现逻辑。创建完成后,还可以将内存中的二进制文件保存到磁盘,从而生成一个新的静态程序集。不过
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



