本章深入到可执行文件的内部,进而探索元数据的概念。 a.cs using System;using System.IO;public class zzz{ public static void Main() { zzz a = new zzz(); a.abc(); } public void abc() { FileStream s = new FileStream("C:\\mda... Read More
posted @ 2009-11-08 20:54
包建强
Views(798)
Comments(0)
Diggs(0)
每个表都会被分配一个唯一的值,或者更精确的说,valid字段中的一个位。从而,由于valid字段被声明为一个长整数(long),所以最多只能有64个不同的表类型。 在上一章的结尾,我们顺便提及了存在于文件中的表的名称。在本章,我们将详细研究在最小的exe文件中这些表的内容。 Module表 第一个表,由位0所标识,是Module表。由于IL中的.module指令的存在,这一行被作为IL中的.... Read More
posted @ 2009-11-08 20:52
包建强
Views(1786)
Comments(0)
Diggs(0)
本章继续描述剩下的没有涉及过的表。为此,创建单独的程序来说明每个不同的表。最后,在本书的最后一章,把它们放入一个单独的程序中,其中每一个表都是交叉引用的。 表4-1 本章的第一个程序使用了Fields表。在b.cs文件中输入下面的代码并编译该文件。 Fields表 b.cs a.cs Output 实例变量又被称为字段。Field表保存了在valid表中的索引4。由于文件跨越了2个名为z... Read More
posted @ 2009-11-08 20:51
包建强
Views(685)
Comments(0)
Diggs(0)
在前面介绍的的所有章节中,通过不同的程序,我们阐明了所有的概念和表。在本章,我们竭力来描述一个单独的程序,它包括了所有的表并显示有意义的输出。在显示了指向不同表的引用的地方,例如typeDef[1]、MethodRef[2]等等。我们将显示存在于这些位置上的实际值。从而,我们尝试着解决所有的交叉引用并以一种全面的方式显示元数据信息。 但是,在开始解释这个巨大的程序之前——该程序对所有的表进行了交... Read More
posted @ 2009-11-08 20:50
包建强
Views(788)
Comments(0)
Diggs(0)
b.il a.cs Output 表5-1 上面的例子是解释方法签名的开始步骤。这个程序被直接作为贯穿本章的一个原型使用。新引进的函数将被追加到abc函数的结尾。FillParamsArray和DisplayMethodSignature这2个函数会被添加到程序中。 为了支持函数签名的显示,参数名称的存在是不可避免的,就像我们在输出重看到的那样。目前,FillParamsArray方法进填... Read More
posted @ 2009-11-08 20:49
包建强
Views(806)
Comments(0)
Diggs(0)
始终对Control Template抱有恐惧。这是WPF/Silverlight中最灵活的技术。 说到底,Control Template就是为控件定义了视觉外观,从Control派生的所有类型,都具有一个Template属性。 如果只有Template,那反而倒简单了: <Button Height="23" HorizontalAlignment="... Read More
posted @ 2009-11-08 20:42
包建强
Views(625)
Comments(0)
Diggs(0)
1对于自定义ParameterInspector,需要注意的是,可以修改参数的值,但是不能改变参数的类型。 自定义ParameterInspector是用于Operation的,所以它要实现IOperationBehavior接口 2对于自定义OperationBehavior,由于它是由于终结点的,所以它要实现IEndpointBehavior接口。 此外,还要注意,cli... Read More
posted @ 2009-11-08 00:26
包建强
Views(401)
Comments(0)
Diggs(0)

浙公网安备 33010602011771号