04 2009 档案
摘要:这里给出了一段可以搞死ILDASM的IL代码。
阅读全文
摘要:CliPeViewer是老刘编写的一个WinForm小程序,能够用来查看托管PE文件中的各种结构。目前有很多能够查看PE信息的程序,支持.NET的也有。不过,CliPeViewer与他们的最大区别在于,这个小程序更在意原汁原味地暴露一个PE文件中的内容,尤其是对于文件中的每个结构、每个字段,除了显示了它的值之外,还显示出了它在PE文件中的偏移量和原始数据。
阅读全文
摘要:前两天发布了《隐藏接口实现 及 ReadOnlyDictionary》一文,有不少朋友提出疑问。其中一个主要问题就是,这样做真的可以实现“只读”吗?如果还有其他变量引用了ReadOnlyDictionary所包装的普通字典,依然可以通过另外这个变量来修改字典中的内容。有朋友甚至提到了,可以在创建ReadOnlyDictionary时,将原有字典中的内容复制出一份,来做到真正的“只读”。
其实,这些主要是因为我对这个类的应用场景没有介绍清楚的缘故。其实我这里提到的ReadOnlyDictionary也好,.NET提供的ReadOnlyCollection也罢,其目的并不是让整个字典(或集合)真的“只读”,而是希望某些具有字典(或集合)性质类成员,能够做到“在当前类中可读写,在类的外部只读”。
阅读全文
摘要:本文介绍了如何从类型中隐藏掉接口的某个成员,并介绍了应用这种技巧实现的只读字典——ReadOnlyDictionary。
接口代表着一种契约。但有的时候,接口所达成的契约并不适用于全部的场景,或者说,接口可能定义得“太宽了”。这个时候,就有必要隐藏起某些接口成员。
然而,接口既然是一种“契约”,这就要求实现方必须为接口中的所有成员提供实现。所以,这里说到的“隐藏”,是指从对象的视角上隐藏。换言之,就是只有直接在对象上调用成员时,看不到某些接口成员,但如果将对象强制转换为接口类型,依然能看到所有的接口成员。
阅读全文
摘要:本文大力吹捧了一下微软的新书《Microsft .NET Framework 3.5 – Windows Forms Application Development》,这是一本考试用书,但对于初学者和进阶者来说,帮助的确很大。
阅读全文
摘要:Aggregator Provider Pattern是Provider Pattern的一种扩展,用于创建和利用多个具有相同提供器接口的类的实例。该模式有一个Aggregator类实现了提供器接口,并包含了一系列实现了相同提供器接口的类的实例集合。
阅读全文