NET基础课--NET中程序集0-1
程序集
1.表现形式:.dll 和. exe 。
2.程序集组成;PE头,CLR头,清单,元数据,CIL代码,资源文件。实际上这些内容包含在一个叫做Module的逻辑结构中。
单模块程序集:程序集就包含一个模块。程序集和模块在一个文件中
多模块程序集:程序集包含多个模块,一个主模块(必须包含清单),和程序集在一个文件中。其他每个模块在各一个文件,其后缀名是.netmodule。
visual studio 只支持生成单模块程序集。
注意概念:程序集是指ClassLib,程序集所在文件是ClassLib.dll。注意区分。
3.PE头: 是一种文件格式,windows操作系统使用,以便识别这个文件是否可执行。
CLR头: 告诉OS这个程序集是.net程序集区别其他可执行程序。
清单: 由于其包含程序集的自解释信息所以也叫程序集元数据,区别后面要说的元数据。
查看方式:使用ILDASM加载程序集,菜单中选择视图---元信息---显示。将滚动条下拉,找到assembly位置。
主要是assemblydef表 filedef表等。 这个表明的定义就是你看到的虚线左上角名称+def。
元数据: 确切的说是类型元数据。查看方式和清单一致。主要有moduledef表,typedef表(类型信息;名称 基类型)
methoddef(方法定义表),fielddef表(字段),eventdef,propertydef。
资源文件:资源可以是字符串,也可以是文件例如图片。
使用方式:A文件直接嵌入到程序集中,当资源较大时会影响程序集加载速度。
B资源文件单独放在一个程序集中,主程序集进行引用。
NET基础课--NET中程序集0-1的更多相关文章
- 错误:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条
在access的mdb数据库动态更新的过程中,遇到了DeleteCommand出现DBConcurrencyException异常,错误:违反并发性: DeleteCommand 影响了预期 1 条记 ...
- Bash 中的 $0 在什么时候不是 argv[0]
每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 ...
- bool 类型存在数据库中为 0 和 1
bool 类型存在数据库中为 0 和 1 但是在程序中应该使用 true 和 false 查询. 例如: bIsStart = 0 在数据中bIsStart为 0 sql 查询的时候,使用:sele ...
- C#中补0
C#中补0 编写人:CC阿爸 2014-3-16 首先先增加两个左补齐又补齐的函数 #region 该函数动态添加空格,对齐小票 public string AddSpace(string text ...
- SQL中补0
SQL中补0 编写人:CC阿爸 2014-3-14 第一种方法: right('00000'+cast(@count as varchar),5) 其中'00000'的个数为right函数的最后参数 ...
- 违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条 解决办法
本文转载:http://www.cnblogs.com/litianfei/archive/2007/08/16/858866.html UpdateCommand和DeleteCommand出现DB ...
- C/C++ 中的0长数组(柔性数组)
转自C/C++ 中的0长数组(柔性数组) 在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的.但是,GUN中却允许使用,而且,很多时候,应用在了 ...
- linux中BASH_SOURCE[0]
在C/C++中,__FUNCTION__常量记录当前函数的名称.有时候,在日志输出的时候包含这些信息是非常有用的.而在Bash中,同样有这样一个常量FUNCNAME,但是有一点区别是,它是一个数组而非 ...
- SVN中与资源库同步时报告了错误。1 中的 0 个资源已经同步
SVN中与资源库同步时报告了错误.1 中的 0 个资源已经同步 原因: 文件被lock, 此时再次提交则出错,解决办法就是clean释放锁即可再次提交: 解决方案: 右键项目–>team–> ...
随机推荐
- [HeadFirst-HTMLCSS学习笔记][第三章创建网页]
一些基本元素 以下元素都可以用CSS变得更好看 q,<blockquote>,<em>,<br>, <strong>,ol ,ul,li,pre,cod ...
- dtree基础
最近用到了dtree来建立树,纠结过好久后,终于有了些门道,下面的总结希望对咪咪们有些帮助: dtree用来建立静态树或者动态树都是很方便的,老外给提供了整个的JS,然后我们只是操心这个树中存放的元素 ...
- GridView控件中插入自定义删除按钮并弹出确认框
GridView控件中插入自定义删除按钮,要实现这个功能其实有多种方法,这里先记下我使用的方法,以后再添加其他方法. 一.实现步骤 1.在GridView中添加模板列(TemplateField). ...
- NFinal简介
NFinalWeb框架是基于魔法糖语法思想创建的框架.本框架有两大特点.1.所有框架里最简单易学易配置的.2.所有框架里运行效率最快的. 相关介绍1.运行效率比任何php和java以及.net框架要快 ...
- (转) 制作 Clonezilla live 启动盘
GNU/Linux Method A: Tuxboot 下載 GNU/Linux 版本使用的 Tuxboot 在您的環境 在 GNU/Linux 下, 請依 指示 來執行 Tuxboot 並安裝再生龍 ...
- Android Studio Linking an external C++ project 时候 报Invalid file name. Expected: CMakeLists.txt
Android Studio 右键Linking an external C++ project 时候 报Invalid file name. Expected: CMakeLists.txt错误 查 ...
- 数字转化为人民币大写(PHP)
<?php function numTrmb($num) { $d = array("零", "壹", "贰", "叁&qu ...
- 分析java 嵌套类与内部类
一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类 ...
- Effective Java2读书笔记-创建和销毁对象(一)
第1条:考虑用静态工厂方法代替构造器 通常情况下,我们创建一个对象采取new的形式,但是还有一种方法也是经常使用到的,它的名称叫做静态工厂方法. 例如,java中基本类型boolean的包装类Bool ...
- 系统service
Context.TELEPHONY_SERVICE TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TEL ...