System.Reflection.Metadata Namespace

Provides low-level functionality for reading assembly metadata according to ECMA-335. This namespace is designed to be used by compilers and other tools that need to read assembly metadata.

Classes

AssemblyExtensions
BlobBuilder
DebugMetadataHeader
HandleComparer
ILOpCodeExtensions
ImageFormatLimitationException

The exception that is thrown when an attempt to write metadata exceeds a limit given by the format specification. For example, when the heap size limit is exceeded.

MetadataReader

Reads metadata as defined by the ECMA 335 CLI specification.

MetadataReaderProvider

Provides a MetadataReader for metadata stored in an array of bytes, a memory block, or a stream.

MetadataStringDecoder

Provides the MetadataReader with a custom mechanism for decoding byte sequences in metadata that represent text.

MetadataUpdateHandlerAttribute

Indicates that a type that should receive notifications of metadata updates.

MetadataUpdater
MethodBodyBlock

Represents the method body in ECMA 335 assembly.

PEReaderExtensions

Structs

ArrayShape

Represents the shape of an array type.

AssemblyDefinition
AssemblyDefinitionHandle
AssemblyFile
AssemblyFileHandle
AssemblyFileHandleCollection

Represents a collection of AssemblyFileHandle.

AssemblyFileHandleCollection.Enumerator
AssemblyReference
AssemblyReferenceHandle
AssemblyReferenceHandleCollection

A collection of assembly references.

AssemblyReferenceHandleCollection.Enumerator
Blob
BlobBuilder.Blobs
BlobContentId
BlobHandle
BlobReader
BlobWriter
Constant
ConstantHandle
CustomAttribute

Provides information about a custom attribute.

CustomAttributeHandle
CustomAttributeHandleCollection
CustomAttributeHandleCollection.Enumerator
CustomAttributeNamedArgument<TType>

Represents a named argument decoded from a custom attribute signature.

CustomAttributeTypedArgument<TType>

Represents a typed argument for a custom metadata attribute.

CustomAttributeValue<TType>

Represents a custom attribute of the type specified by TType.

CustomDebugInformation
CustomDebugInformationHandle
CustomDebugInformationHandleCollection
CustomDebugInformationHandleCollection.Enumerator
DeclarativeSecurityAttribute
DeclarativeSecurityAttributeHandle
DeclarativeSecurityAttributeHandleCollection
DeclarativeSecurityAttributeHandleCollection.Enumerator
Document

The source document in the debug metadata.

DocumentHandle
DocumentHandleCollection
DocumentHandleCollection.Enumerator
DocumentNameBlobHandle

A BlobHandle representing a blob on #Blob heap in Portable PDB structured as Document Name.

EntityHandle

Represents a metadata entity (such as a type reference, type definition, type specification, method definition, or custom attribute).

EventAccessors
EventDefinition
EventDefinitionHandle
EventDefinitionHandleCollection
EventDefinitionHandleCollection.Enumerator
ExceptionRegion
ExportedType
ExportedTypeHandle
ExportedTypeHandleCollection

Represents a collection of TypeReferenceHandle instances.

ExportedTypeHandleCollection.Enumerator
FieldDefinition
FieldDefinitionHandle
FieldDefinitionHandleCollection
FieldDefinitionHandleCollection.Enumerator
GenericParameter
GenericParameterConstraint
GenericParameterConstraintHandle
GenericParameterConstraintHandleCollection

Represents a collection of constraints of a generic type parameter.

GenericParameterConstraintHandleCollection.Enumerator
GenericParameterHandle
GenericParameterHandleCollection

Represents a collection of generic type parameters of a method or type.

GenericParameterHandleCollection.Enumerator
GuidHandle
Handle

Represents any metadata entity (such as a type reference, a type definition, a type specification, a method definition, or a custom attribute) or value (a string, blob, guid, or user string).

ImportDefinition
ImportDefinitionCollection
ImportDefinitionCollection.Enumerator
ImportScope

Provides information about the lexical scope within which a group of imports are available. This information is stored in debug metadata.

ImportScopeCollection
ImportScopeCollection.Enumerator
ImportScopeHandle
InterfaceImplementation
InterfaceImplementationHandle
InterfaceImplementationHandleCollection
InterfaceImplementationHandleCollection.Enumerator
LocalConstant

Provides information about local constants. This information is stored in debug metadata.

LocalConstantHandle
LocalConstantHandleCollection
LocalConstantHandleCollection.Enumerator
LocalScope

Provides information about the scope of local variables and constants. This information is stored in debug metadata.

LocalScopeHandle
LocalScopeHandleCollection
LocalScopeHandleCollection.ChildrenEnumerator
LocalScopeHandleCollection.Enumerator
LocalVariable

Provides information about local variables. This information is stored in debug metadata.

LocalVariableHandle
LocalVariableHandleCollection
LocalVariableHandleCollection.Enumerator
ManifestResource
ManifestResourceHandle
ManifestResourceHandleCollection

Represents a collection of ManifestResourceHandle instances.

ManifestResourceHandleCollection.Enumerator
MemberReference
MemberReferenceHandle
MemberReferenceHandleCollection

Represents a collection of MemberReferenceHandle instances.

MemberReferenceHandleCollection.Enumerator
MetadataStringComparer

Provides string comparison helpers to query strings in metadata while avoiding allocation if possible.

MethodDebugInformation

Provides debug information associated with a method definition. This information is stored in debug metadata.

MethodDebugInformationHandle
MethodDebugInformationHandleCollection
MethodDebugInformationHandleCollection.Enumerator
MethodDefinition
MethodDefinitionHandle
MethodDefinitionHandleCollection
MethodDefinitionHandleCollection.Enumerator
MethodImplementation
MethodImplementationHandle
MethodImplementationHandleCollection
MethodImplementationHandleCollection.Enumerator
MethodImport
MethodSignature<TType>

Represents a method (definition, reference, or standalone) or property signature. In the case of properties, the signature matches that of a getter with a distinguishing SignatureHeader.

MethodSpecification
MethodSpecificationHandle
ModuleDefinition
ModuleDefinitionHandle
ModuleReference
ModuleReferenceHandle
NamespaceDefinition
NamespaceDefinitionHandle

Provides a handle to a namespace definition.

Parameter
ParameterHandle
ParameterHandleCollection

Contains a collection of parameters of a specified method.

ParameterHandleCollection.Enumerator
PropertyAccessors
PropertyDefinition
PropertyDefinitionHandle
PropertyDefinitionHandleCollection
PropertyDefinitionHandleCollection.Enumerator
ReservedBlob<THandle>

Represents a handle and a corresponding blob on a metadata heap that was reserved for future content update.

SequencePoint

Represents a Portable PDB sequence point.

SequencePointCollection
SequencePointCollection.Enumerator
SignatureHeader

Represents the signature characteristics specified by the leading byte of signature blobs.

StandaloneSignature
StandaloneSignatureHandle
StringHandle
TypeDefinition
TypeDefinitionHandle
TypeDefinitionHandleCollection

Contains a collection of TypeDefinitionHandle instances.

TypeDefinitionHandleCollection.Enumerator
TypeLayout
TypeReference
TypeReferenceHandle
TypeReferenceHandleCollection

Contains a collection of TypeReferenceHandle instances.

TypeReferenceHandleCollection.Enumerator
TypeSpecification
TypeSpecificationHandle
UserStringHandle

Represents a handle to the user string heap.

Interfaces

IConstructedTypeProvider<TType>
ICustomAttributeTypeProvider<TType>
IPrimitiveTypeProvider<TType>
ISignatureTypeProvider<TType>
ISignatureTypeProvider<TType,TGenericContext>
ISimpleTypeProvider<TType>
ISZArrayTypeProvider<TType>
ITypeProvider<TType>

Enums

ConstantTypeCode

Specifies values that represent types of metadata constants.

CustomAttributeNamedArgumentKind

Specifies constants that define the kinds of arguments in a custom attribute signature.

ExceptionRegionKind
HandleKind
ILOpCode
ImportDefinitionKind
LocalVariableAttributes
MemberReferenceKind

Specifies constants that indicate whether a MemberReference references a method or field.

MetadataKind
MetadataReaderOptions
MetadataStreamOptions
PrimitiveSerializationTypeCode

Specifies constants that define the type codes used to encode types of primitive values in a CustomAttribute value blob.

PrimitiveTypeCode

Specifies constants that define primitive types found in metadata signatures.

SerializationTypeCode

Specifies type codes used to encode the types of values in a CustomAttributeValue<TType> blob.

SignatureAttributes

Specifies additional flags that can be applied to method signatures. The underlying values of the fields in this type correspond to the representation in the leading signature byte represented by a SignatureHeader structure.

SignatureCallingConvention

Specifies how arguments in a given signature are passed from the caller to the callee. The underlying values of the fields in this type correspond to the representation in the leading signature byte represented by a SignatureHeader structure.

SignatureKind

Specifies the signature kind. The underlying values of the fields in this type correspond to the representation in the leading signature byte represented by a SignatureHeader structure.

SignatureTypeCode

Specifies constants that define type codes used in signature encoding.

SignatureTypeKind

Indicates the type definition of the signature.

StandaloneSignatureKind

Indicates whether a StandaloneSignature represents a standalone method or local variable signature.

Remarks

This namespace contains the following core classes:

See also