Figure 2 IMetaDataImport Token Types
Token
Enumeration Method
Get Properties Method
mdCustomValue
EnumCustomAttributes
GetCustomAttributeProps
mdEvent
EnumEvents
GetEventProps
mdFieldDef
EnumFields
GetFieldProps
mdInterfaceImpl
EnumInterfaceImpls
GetInterfaceImplProps
mdMemberRef
EnumMemberRefs
GetMemberRefProps
mdToken
EnumMembers
GetMemberProps
mdMethodDef
EnumMethods
GetMethodProps
mdModuleRef
EnumModuleRefs
GetModuleRefProps
mdParamDef
EnumParams
GetParamProps
mdPermission
EnumPermissionSets
GetPermissionSetProps
mdProperty
EnumProperties
GetPropertyProps
mdTypeDef
EnumTypeDefs
GetTypeDefProps
mdTypeRef
EnumTypeRefs
GetTypeRefProps
mdString
EnumUserStrings
GetUserString
Figure 3 Types in Metadata Type Signatures
Type Name
Value
Data Type
ELEMENT_TYPE_VOID
0x1
Void
ELEMENT_TYPE_BOOLEAN
0x2
Boolean
ELEMENT_TYPE_CHAR
0x3
Character
ELEMENT_TYPE_I1
0x4
Signed 1-byte integer
ELEMENT_TYPE_U1
0x5
Unsigned 1-byte integer
ELEMENT_TYPE_I2
0x6
Signed 2-byte integer
ELEMENT_TYPE_U2
0x7
Unsigned 2-byte integer
ELEMENT_TYPE_I4
0x8
Signed 4-byte integer
ELEMENT_TYPE_U4
0x9
Unsigned 4-byte integer
ELEMENT_TYPE_I8
0xa
Signed 8-byte integer
ELEMENT_TYPE_U8
0xb
Unsigned 8-byte integer
ELEMENT_TYPE_R4
0xc
4-byte floating point
ELEMENT_TYPE_R8
0xd
8-byte floating point
ELEMENT_TYPE_STRING
0xe
System.String
Figure 4 IMetaDataAssemblyImport Token Types
Token
Enumeration Method
Get Properties Method
mdAssemblyRef
EnumAssemblyRefs
GetAssemblyRefProps
mdFile
EnumFiles
GetFileProps
mdComType
EnumComTypes
GetComTypeProps
mdManifestResource
EnumManifestResources
GetManifestResourceProps
mdExecutionLocation
EnumExecutionLocations
GetExecutionLocationProps
Figure 5 CorTokenType Token Types
typedef enum CorTokenType
{
    mdtModule               = 0x00000000
    mdtTypeRef              = 0x01000000
    mdtTypeDef              = 0x02000000
    mdtFieldDef             = 0x04000000
    mdtMethodDef            = 0x06000000
    mdtParamDef             = 0x08000000
    mdtInterfaceImpl        = 0x09000000
    mdtMemberRef            = 0x0a000000
    mdtCustomAttribute      = 0x0c000000
    mdtPermission           = 0x0e000000
    mdtSignature            = 0x11000000
    mdtEvent                = 0x14000000 
    mdtProperty             = 0x17000000 
    mdtModuleRef            = 0x1a000000 
    mdtTypeSpec             = 0x1b000000 
    mdtAssembly             = 0x20000000
    mdtAssemblyRef          = 0x23000000
    mdtFile                 = 0x26000000
    mdtComType              = 0x27000000
    mdtManifestResource     = 0x28000000
    mdtExecutionLocation    = 0x29000000
    mdtSourceFile           = 0x2a000000 
    mdtLocalVarScope        = 0x2c000000 
    mdtLocalVar             = 0x2d000000 
    mdtString               = 0x70000000 
    mdtName                 = 0x71000000
    mdtBaseType             = 0x72000000
} CorTokenType;
Figure 6 Unmanaged API Tokens and Equivalent Reflection API Types and Methods
Unmanaged Token
Reflection Equivalent Type
Reflection Enumeration Method
mdModule
Module *
Assembly::GetModules
mdTypeDef
Type *
Assembly::GetType
mdFieldDef
FieldInfo *
Type::GetFields
mdMethodDef
MethodInfo *
Type::GetMethods
mdParamDef
ParameterInfo *
MethodInfo::GetParameters
mdCustomAttribute
Object *
XXX::GetCustomAttributes
mdEvent
EventInfo *
Type::GetEvents
mdProperty
PropertyInfo *
Type::GetProperties
mdAssembly
Assembly *
Assembly::Load or AppDomain::GetAssemblies
mdAssemblyRef
AssemblyName *
Assembly::GetReferencedAssemblies
mdManifestResource
String *
Assembly::GetManifestResourceNames
Figure 7 MethodBase
MethodBase::IsAbstract
MethodBase::IsAssembly
MethodBase::IsConstructor
MethodBase::IsFamily
MethodBase::IsFamilyAndAssembly
MethodBase::IsFamilyOrAssembly
MethodBase::IsFinal
MethodBase::IsHideBySig
MethodBase::IsPrivate
MethodBase::IsPublic
MethodBase::IsSpecialName
MethodBase::IsStatic
MethodBase::IsVirtual

MSDN Magazine Blog

MSDN Magazine Right Rail

14 Top Features of Visual Basic 14: The Q&A
Leading off the feature in the January issue of MSDN Magazine is Lucian Wischik’s fantastic look at Visual Basic .NET 14. As Wischik writes, the newes... More...
Wednesday, Jan 7
Big Start to the New Year at MSDN Magazine
Folks, things are hopping over here at MSDN Magazine. We are kicking off the new year with a pair of issues: Our regularly scheduled January issue and... More...
Friday, Jan 2

More MSDN Magazine Blog entries >


Receive the MSDN Flash e-mail newsletter every other week, with news and information personalized to your interests and areas of focus.