小结
既然你已经了解元数据原则上是如何被组织的,你要准备好检测这些特定的元数据项和表示它们的表。所有进一步的考虑都将集中在4个元数据流上——#Strings、#Blob、#US和#~——因为#GUID只在一个元数据表中被引用到(Module表),而#-流(未优化的元数据)则从来不会被ILAsm编译器发布。
这里对一些人有一些建议,他们想知道这是否一个好的主意——在细微操作元数据的借口下,欺骗元数据头从而有权访问超越元数据之上的数据:忘记他!CLR加载器在分析元数据头的一致性和元数据本身时有安全保障。如果侦测到不一致性,加载器就拒绝打开这个元数据流。胡乱地修补这个元数据头并不会导致这个模块错误的或不可预计的行为;代替的,它会这段时期生成不可加载的模块。
一些翻译笔记:
quit stalling! 不要拖延时间
It would be tempting to do (去做某事)非常诱人,有诱惑力
in minute detail: 细枝末节
emission翻译???
mutually exclusive 互斥的
翻译的有问题,bit和byte混淆了
Schema 翻译为规格
Stand-alone的翻译 独立的
per se 本身 本质上
Edit-and-Continue