MetadataReader Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335.
public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public NotInheritable Class MetadataReader
- Dziedziczenie
-
MetadataReader
Przykłady
W tym przykładzie pokazano, jak utworzyć MetadataReader zestaw i odczytać z niego wszystkie definicje typów:
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}");
}
Uwagi
MetadataReader Odczytuje zawartość tabel i stert z określonych metadanych interfejsu wiersza polecenia. Obsługuje konstrukcje niskiego poziomu, takie jak definicje typów i metod. Aby uzyskać interfejs API wyższego poziomu w celu sprawdzenia zawartości zestawów przy użyciu konstrukcji odbicia, zobacz MetadataLoadContext.
Konstruktorów, takich jak MetadataReader(Byte*, Int32), można użyć do utworzenia MetadataReader wystąpienia dla danej lokalizacji pamięci. Aby odczytać metadane z pliku przenośnego zestawu wykonywalnego, utwórz PEReader metodę GetMetadataReader(PEReader) rozszerzenia i użyj jej.
Format metadanych interfejsu wiersza polecenia jest definiowany przez specyfikację ECMA-335. Aby uzyskać więcej informacji, zobacz Standard ECMA-335 — Common Language Infrastructure (CLI) w witrynie sieci Web Ecma International.
Konstruktory
MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) |
Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci. |
MetadataReader(Byte*, Int32, MetadataReaderOptions) |
Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci. |
MetadataReader(Byte*, Int32) |
Inicjuje MetadataReader nowe wystąpienie klasy z metadanych przechowywanych w danej lokalizacji pamięci. |
Właściwości
AssemblyFiles |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
AssemblyReferences |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
CustomAttributes |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
CustomDebugInformation |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
DebugMetadataHeader |
Pobiera informacje zdekodowane ze strumienia #Pdb lub |
DeclarativeSecurityAttributes |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
Documents |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
EventDefinitions |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
ExportedTypes |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
FieldDefinitions |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
ImportScopes |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
IsAssembly |
Pobiera wartość wskazującą, czy metadane reprezentują zestaw. |
LocalConstants |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
LocalScopes |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
LocalVariables |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
ManifestResources |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
MemberReferences |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
MetadataKind |
Pobiera rodzaj metadanych. |
MetadataLength |
Pobiera długość danych bazowych. |
MetadataPointer |
Pobiera wskaźnik do danych bazowych. |
MetadataVersion |
Pobiera ciąg wersji odczytany z nagłówka metadanych. |
MethodDebugInformation |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
MethodDefinitions |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
Options |
MetadataReaderOptions Pobiera przekazany do konstruktora. |
PropertyDefinitions |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
StringComparer |
Pobiera element porównujący używany do porównywania ciągów przechowywanych w metadanych. |
TypeDefinitions |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
TypeReferences |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
UTF8Decoder |
Pobiera dekoder używany przez czytnik do tworzenia wystąpień ciągów z sekwencji bajtów zakodowanych w formacie UTF8. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetAssemblyDefinition() |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetAssemblyFile(AssemblyFileHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetAssemblyName(String) |
Pobiera wartość AssemblyName dla danego pliku. |
GetAssemblyReference(AssemblyReferenceHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetBlobBytes(BlobHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetBlobContent(BlobHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetBlobReader(BlobHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetBlobReader(StringHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetConstant(ConstantHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetCustomAttribute(CustomAttributeHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetCustomAttributes(EntityHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetCustomDebugInformation(CustomDebugInformationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetCustomDebugInformation(EntityHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetDocument(DocumentHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetEventDefinition(EventDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetExportedType(ExportedTypeHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetFieldDefinition(FieldDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetGenericParameter(GenericParameterHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetGenericParameterConstraint(GenericParameterConstraintHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetGuid(GuidHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetImportScope(ImportScopeHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetInterfaceImplementation(InterfaceImplementationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetLocalConstant(LocalConstantHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetLocalScope(LocalScopeHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetLocalScopes(MethodDebugInformationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetLocalScopes(MethodDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetLocalVariable(LocalVariableHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetManifestResource(ManifestResourceHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMemberReference(MemberReferenceHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMethodDebugInformation(MethodDebugInformationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMethodDebugInformation(MethodDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMethodDefinition(MethodDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMethodImplementation(MethodImplementationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetMethodSpecification(MethodSpecificationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetModuleDefinition() |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetModuleReference(ModuleReferenceHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetNamespaceDefinition(NamespaceDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetNamespaceDefinitionRoot() |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetParameter(ParameterHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetPropertyDefinition(PropertyDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetStandaloneSignature(StandaloneSignatureHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetString(DocumentNameBlobHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetString(NamespaceDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetString(StringHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
GetTypeDefinition(TypeDefinitionHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetTypeReference(TypeReferenceHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetTypeSpecification(TypeSpecificationHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
GetUserString(UserStringHandle) |
Odczytuje metadane zgodnie ze specyfikacją interfejsu wiersza polecenia ECMA 335. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Metody rozszerzania
GetEditAndContinueLogEntries(MetadataReader) |
Wylicza wpisy dziennika EnC. |
GetEditAndContinueMapEntries(MetadataReader) |
Wylicza wpisy mapy EnC. |
GetHeapMetadataOffset(MetadataReader, HeapIndex) |
Zwraca przesunięcie od początku metadanych do określonej sterty. |
GetHeapSize(MetadataReader, HeapIndex) |
Zwraca rozmiar określonej sterty. |
GetNextHandle(MetadataReader, BlobHandle) |
Zwraca uchwyt, który Blob następuje po danym w Blob stercie lub zerowym dojściu, jeśli jest to ostatni. |
GetNextHandle(MetadataReader, StringHandle) |
Zwraca dojście do ciągu, który następuje po danym stosie ciągu lub zerowym dojściu, jeśli jest to ostatni. |
GetNextHandle(MetadataReader, UserStringHandle) |
Zwraca uchwyt do userString, który następuje po danym w stercie UserString lub zerowym dojściu, jeśli jest to ostatni. |
GetTableMetadataOffset(MetadataReader, TableIndex) |
Zwraca przesunięcie od początku metadanych do określonej tabeli. |
GetTableRowCount(MetadataReader, TableIndex) |
Zwraca liczbę wierszy w określonej tabeli. |
GetTableRowSize(MetadataReader, TableIndex) |
Zwraca rozmiar wiersza w określonej tabeli. |
GetTypesWithEvents(MetadataReader) |
Wylicza typy definiujące co najmniej jedno zdarzenie. |
GetTypesWithProperties(MetadataReader) |
Wyliczanie typów definiujących co najmniej jedną właściwościę. |
ResolveSignatureTypeKind(MetadataReader, EntityHandle, Byte) |
Biorąc pod uwagę uchwyt typu i typ typu nieprzetworzonego znalezionego w obiekcie blob podpisu, określa, czy typ docelowy jest typem wartości, czy typem referencyjnym. |
GetHeapOffset(MetadataReader, Handle) |
Pobiera przesunięcie danych sterty metadanych, które odpowiadają określonemu |
GetRowNumber(MetadataReader, EntityHandle) |
Pobiera numer wiersza wpisu tabeli metadanych, który odpowiada określonemu |
GetToken(MetadataReader, EntityHandle) |
Pobiera token metadanych określonego |
GetToken(MetadataReader, Handle) |
Pobiera token metadanych określonego |