2011-08-23 57 views

回答

3

mdToken是元數據標記,或多或少是元數據表中的一個行標識(int的一部分標識它所屬的表,另一部分標識該表中的行)。

標記有兩種類型 - 內部和外部。

內部令牌比外部的小,只使用4個字節:3個字節的行id和1個字節的表id。 (我不確定這些大小是否改變了x64,但你明白了) 示例:0x06000000爲方法表中的第一行(從零開始)。

外部令牌(或代碼令牌)更大,適用於一系列表,而不是特定的表。有幾種不同的編碼標記類型,他們有已知的模式,你必須知道它們來理解他們的編碼值。例如,HasCustomAttribute令牌可以是任何19個元數據表的標記(因爲屬性可以附加到代碼的很多不同部分)。編碼標記的一部分是表格的標識,也稱爲標記(但是用於保持該部分的位寬不同 - 因此是已知的模式),其餘部分留給行標識。外部令牌的大小可能會有所不同 - 這有助於在行數較小時保持較小的大小。

相關問題