MetadataReader Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335.
public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
- Dědičnost
-
MetadataReader
Příklady
Tento příklad ukazuje, jak vytvořit MetadataReader pro sestavení a přečíst z něj všechny definice typů:
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}");
}
Poznámky
MetadataReader čte obsah tabulek a spoustu dat ze zadaných metadat rozhraní příkazového řádku. Pracuje s konstrukcemi nízké úrovně, jako jsou definice typu a metody. Rozhraní API vyšší úrovně pro kontrolu obsahu sestavení pomocí konstruktorů reflexe najdete v tématu MetadataLoadContext.
Konstruktory, jako MetadataReader(Byte*, Int32)je , můžete použít k vytvoření instance MetadataReader pro dané umístění paměti. Chcete-li číst metadata ze souboru sestavení Portable Executable, vytvořte PEReader a použijte rozšiřující metodu GetMetadataReader(PEReader) .
Formát metadat rozhraní příkazového řádku je definovaný specifikací ECMA-335. Další informace najdete v tématu Standard ECMA-335 – Common Language Infrastructure (CLI) na webu Ecma International.
Konstruktory
MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) |
Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti. |
MetadataReader(Byte*, Int32, MetadataReaderOptions) |
Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti. |
MetadataReader(Byte*, Int32) |
Inicializuje novou instanci MetadataReader třídy z metadat uložených v daném umístění paměti. |
Vlastnosti
AssemblyFiles |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
AssemblyReferences |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
CustomAttributes |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
CustomDebugInformation |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
DebugMetadataHeader |
Získá informace dekódované z #Pdb datového proudu, nebo |
DeclarativeSecurityAttributes |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
Documents |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
EventDefinitions |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
ExportedTypes |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
FieldDefinitions |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
ImportScopes |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
IsAssembly |
Získá hodnotu, která označuje, zda metadata představuje sestavení. |
LocalConstants |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
LocalScopes |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
LocalVariables |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
ManifestResources |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
MemberReferences |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
MetadataKind |
Získá druh metadat. |
MetadataLength |
Získá délku podkladových dat. |
MetadataPointer |
Získá ukazatel na podkladová data. |
MetadataVersion |
Získá řetězec verze přečtený z hlavičky metadat. |
MethodDebugInformation |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
MethodDefinitions |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
Options |
Získá předaný MetadataReaderOptions konstruktoru. |
PropertyDefinitions |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
StringComparer |
Získá porovnávací nástroj použitý k porovnání řetězců uložených v metadatech. |
TypeDefinitions |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
TypeReferences |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
UTF8Decoder |
Získá dekodér používaný čtečkou k vytvoření řetězce instance z UTF8-kódování sekvence bajtů. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetAssemblyDefinition() |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetAssemblyFile(AssemblyFileHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetAssemblyName(String) |
Získá pro AssemblyName daný soubor. |
GetAssemblyReference(AssemblyReferenceHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetBlobBytes(BlobHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetBlobContent(BlobHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetBlobReader(BlobHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetBlobReader(StringHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetConstant(ConstantHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetCustomAttribute(CustomAttributeHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetCustomAttributes(EntityHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetCustomDebugInformation(CustomDebugInformationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetCustomDebugInformation(EntityHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetDocument(DocumentHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetEventDefinition(EventDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetExportedType(ExportedTypeHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetFieldDefinition(FieldDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetGenericParameter(GenericParameterHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetGenericParameterConstraint(GenericParameterConstraintHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetGuid(GuidHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetImportScope(ImportScopeHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetInterfaceImplementation(InterfaceImplementationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetLocalConstant(LocalConstantHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetLocalScope(LocalScopeHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetLocalScopes(MethodDebugInformationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetLocalScopes(MethodDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetLocalVariable(LocalVariableHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetManifestResource(ManifestResourceHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMemberReference(MemberReferenceHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMethodDebugInformation(MethodDebugInformationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMethodDebugInformation(MethodDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMethodDefinition(MethodDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMethodImplementation(MethodImplementationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetMethodSpecification(MethodSpecificationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetModuleDefinition() |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetModuleReference(ModuleReferenceHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetNamespaceDefinition(NamespaceDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetNamespaceDefinitionRoot() |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetParameter(ParameterHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetPropertyDefinition(PropertyDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetStandaloneSignature(StandaloneSignatureHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetString(DocumentNameBlobHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetString(NamespaceDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetString(StringHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
GetTypeDefinition(TypeDefinitionHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetTypeReference(TypeReferenceHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetTypeSpecification(TypeSpecificationHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
GetUserString(UserStringHandle) |
Čte metadata definovaná specifikací ROZHRANÍ PŘÍKAZOVÉHO ŘÁDKU ECMA 335. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Metody rozšíření
GetEditAndContinueLogEntries(MetadataReader) |
Vytvoří výčet položek protokolu EnC. |
GetEditAndContinueMapEntries(MetadataReader) |
Vytvoří výčet položek mapy EnC. |
GetHeapMetadataOffset(MetadataReader, HeapIndex) |
Vrátí posun od začátku metadat k zadané haldě. |
GetHeapSize(MetadataReader, HeapIndex) |
Vrátí velikost zadané haldy. |
GetNextHandle(MetadataReader, BlobHandle) |
Vrátí popisovač, Blob který následuje za daným v haldě Blob , nebo nil úchyt, pokud je poslední. |
GetNextHandle(MetadataReader, StringHandle) |
Vrátí popisovač řetězce, který následuje za daným v řetězcové haldě, nebo popisovač nil, pokud je poslední. |
GetNextHandle(MetadataReader, UserStringHandle) |
Vrátí popisovač uživatelského řetězce, který následuje za daným v haldě UserString, nebo popisovač nil, pokud je poslední. |
GetTableMetadataOffset(MetadataReader, TableIndex) |
Vrátí posun od začátku metadat k zadané tabulce. |
GetTableRowCount(MetadataReader, TableIndex) |
Vrátí počet řádků v zadané tabulce. |
GetTableRowSize(MetadataReader, TableIndex) |
Vrátí velikost řádku v zadané tabulce. |
GetTypesWithEvents(MetadataReader) |
Výčet typů, které definují jednu nebo více událostí. |
GetTypesWithProperties(MetadataReader) |
Vytvořit výčet typů, které definují jednu nebo více vlastností. |
ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte) |
Při zadání popisovače typu a nezpracovaného typu nalezeného v objektu blob podpisu se určuje, jestli je cílový typ hodnotový typ nebo typ odkazu. |
GetHeapOffset(MetadataReader, Handle) |
Získá posun dat haldy metadat, která odpovídá zadanému |
GetRowNumber(MetadataReader, EntityHandle) |
Získá číslo řádku položky tabulky metadat, která odpovídá zadanému |
GetToken(MetadataReader, EntityHandle) |
Získá token |
GetToken(MetadataReader, Handle) |
Získá token |