静态程序集可以包括.NET Framework类型(接口和类),以及程序集的资源(位图,JPEG文件,资源文件等).静态程序集以可移植可执行(PE)文件的形式存储在磁盘上.您还可以使用.NET Framework创建动态程序集,这些程序集直接从内存运行,并且在执行之前不会保存到磁盘.您可以在执行后将动态程序集保存到磁盘.
静态装配是那些永久存储在磁盘上的装配.它们可能包括.NET Framework类,接口以及资源文件.这些程序集不直接从内存加载,而是在CLR(公共语言运行时)请求它们时直接从磁盘加载.这些程序集用于作为文件或文件集存储在磁盘上.每当编译C#代码时,就会得到一个STATIC程序集.
动态程序集是那些在执行之前未存储在磁盘上的程序集,实际上在执行后它们存储在磁盘上.当.NET运行时调用它们时,它们直接从内存加载,而不是从磁盘加载.Reflection emit提供了许多创建动态程序集的方法.这些方法是使用System.Reflection.emit命名空间在内存中创建的.System.Reflection.Emit命名空间包含允许编译器或工具发出元数据和Microsoft中间语言(MSIL)的类可选地在磁盘上生成PE文件.当应用程序需要这些程序集中的类型时,这些动态程序集将在运行时动态创建
简单来说,静态组件我们每天与它进行交互的正常程序集负载解析它等动态组件,你用反射和调用创建它.
信息来源:http://www.dotnetheaven.com/article/static-assembly-vs-dynamic-assembly-in-csharp和MSDN
| 归档时间: |
|
| 查看次数: |
7229 次 |
| 最近记录: |