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)생성자를 사용하여 지정된 메모리 위치에 대한 의 instance MetadataReader 만들 수 있습니다. 이식 가능한 실행 파일 어셈블리 파일에서 메타데이터를 읽으려면 확장 메서드를 GetMetadataReader(PEReader) 만들고 PEReader 사용합니다.
CLI 메타데이터의 형식은 ECMA-335 사양에 의해 정의됩니다. 자세한 내용은 Ecma International 웹 사이트의 표준 ECMA-335 - 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로 인코딩된 바이트 시퀀스에서 문자열 인스턴스를 생성하기 위해 reader에서 사용하는 디코더를 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetAssemblyDefinition() |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetAssemblyFile(AssemblyFileHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetAssemblyName(String) |
지정된 파일의 AssemblyName을 가져옵니다. |
GetAssemblyReference(AssemblyReferenceHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetBlobBytes(BlobHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetBlobContent(BlobHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetBlobReader(BlobHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetBlobReader(StringHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetConstant(ConstantHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetCustomAttribute(CustomAttributeHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetCustomAttributes(EntityHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetCustomDebugInformation(CustomDebugInformationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetCustomDebugInformation(EntityHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetDeclarativeSecurityAttribute(DeclarativeSecurityAttributeHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetDocument(DocumentHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetEventDefinition(EventDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetExportedType(ExportedTypeHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetFieldDefinition(FieldDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetGenericParameter(GenericParameterHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetGenericParameterConstraint(GenericParameterConstraintHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetGuid(GuidHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetImportScope(ImportScopeHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetInterfaceImplementation(InterfaceImplementationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetLocalConstant(LocalConstantHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetLocalScope(LocalScopeHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetLocalScopes(MethodDebugInformationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetLocalScopes(MethodDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetLocalVariable(LocalVariableHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetManifestResource(ManifestResourceHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMemberReference(MemberReferenceHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMethodDebugInformation(MethodDebugInformationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMethodDebugInformation(MethodDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMethodDefinition(MethodDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMethodImplementation(MethodImplementationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetMethodSpecification(MethodSpecificationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetModuleDefinition() |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetModuleReference(ModuleReferenceHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetNamespaceDefinition(NamespaceDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetNamespaceDefinitionRoot() |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetParameter(ParameterHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetPropertyDefinition(PropertyDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetStandaloneSignature(StandaloneSignatureHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetString(DocumentNameBlobHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetString(NamespaceDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetString(StringHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetTypeDefinition(TypeDefinitionHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetTypeReference(TypeReferenceHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetTypeSpecification(TypeSpecificationHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
GetUserString(UserStringHandle) |
ECMA 335 CLI 사양에 정의된 대로 메타데이터를 읽습니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
확장 메서드
적용 대상
.NET