MetadataReader Klasa
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
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.
Konstruktorów
| Nazwa | Opis |
|---|---|
| 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
| Nazwa | Opis |
|---|---|
| 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
| Nazwa | Opis |
|---|---|
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Dziedziczone od 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. (Dziedziczone od 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. (Dziedziczone od 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 . (Dziedziczone od Object) |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Dziedziczone od Object) |
Metody rozszerzania
| Nazwa | Opis |
|---|---|
| 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 |