MetadataReader 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
如 ECMA 335 CLI 規格所定義,讀取中繼資料。
public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
- 繼承
-
MetadataReader
範例
此範例示範如何為元件建立 MetadataReader ,並從中讀取所有類型定義:
using var fs = new FileStream("Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);
MetadataReader mr = peReader.GetMetadataReader();
foreach (TypeDefinitionHandle tdefh in mr.TypeDefinitions)
{
TypeDefinition tdef = mr.GetTypeDefinition(tdefh);
string ns = mr.GetString(tdef.Namespace);
string name = mr.GetString(tdef.Name);
Console.WriteLine($"{ns}.{name}");
}
備註
MetadataReader 從指定的 CLI 元數據讀取資料表和堆積的內容。 它會操作低階建構,例如類型和方法定義。 如需使用反映建構檢查元件內容的較高層級 API,請參閱 MetadataLoadContext。
您可以使用 建構函式,例如 MetadataReader(Byte*, Int32),為指定的記憶體位置建立的 MetadataReader 實例。 若要從可攜式可執行檔元件檔讀取元數據,請建立 PEReader 並使用 GetMetadataReader(PEReader) 擴充方法。
CLI 元數據的格式是由 ECMA-335 規格所定義。 如需詳細資訊,請參閱 Ecma International 網站上的 標準 ECMA-335 - Common Language Infrastructure (CLI) 。
建構函式
MetadataReader(Byte*, Int32) |
從儲存在給定記憶體位置的中繼資料,初始化 MetadataReader 類別的新執行個體。 |
MetadataReader(Byte*, Int32, MetadataReaderOptions) |
從儲存在給定記憶體位置的中繼資料,初始化 MetadataReader 類別的新執行個體。 |
MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) |
從儲存在給定記憶體位置的中繼資料,初始化 MetadataReader 類別的新執行個體。 |
屬性
AssemblyFiles |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
AssemblyReferences |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
CustomAttributes |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
CustomDebugInformation |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
DebugMetadataHeader |
從 #Pdb 資料流取得已解碼資訊,如果資料流不存在則為 |
DeclarativeSecurityAttributes |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
Documents |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
EventDefinitions |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
ExportedTypes |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
FieldDefinitions |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
ImportScopes |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
IsAssembly |
取得值,這個值表示中繼資料是否代表組件。 |
LocalConstants |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
LocalScopes |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
LocalVariables |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
ManifestResources |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
MemberReferences |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
MetadataKind |
取得中繼資料類型。 |
MetadataLength |
取得基礎資料的長度。 |
MetadataPointer |
取得基礎資料的指標。 |
MetadataVersion |
取得從中繼資料標頭讀取的版本字串。 |
MethodDebugInformation |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
MethodDefinitions |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
Options |
取得傳遞至建構函式的 MetadataReaderOptions。 |
PropertyDefinitions |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
StringComparer |
取得用來比較儲存在中繼資料中之字串的比較子。 |
TypeDefinitions |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
TypeReferences |
如 ECMA 335 CLI 規格所定義,讀取中繼資料。 |
UTF8Decoder |
取得讀取器用來從 UTF8 編碼位元組序列產生字串執行個體的解碼器。 |