Beispiel #1
0
        public static tMetaData *GetResolutionScopeMetaData(tMetaData *pMetaData, /*IDX_TABLE*/ uint resolutionScopeToken,
                                                            tMD_TypeDef **ppInNestedType)
        {
            switch (MetaData.TABLE_ID(resolutionScopeToken))
            {
            case MetaDataTable.MD_TABLE_ASSEMBLYREF:
            {
                tMD_AssemblyRef *pAssemblyRef;

                pAssemblyRef = (tMD_AssemblyRef *)MetaData.GetTableRow(pMetaData, resolutionScopeToken);
                *ppInNestedType = null;
                return(CLIFile.GetMetaDataForAssembly(pAssemblyRef->name));
            }

            case MetaDataTable.MD_TABLE_TYPEREF:
            {
                tMD_TypeDef *pTypeDef;

                pTypeDef = MetaData.GetTypeDefFromDefRefOrSpec(pMetaData, resolutionScopeToken, null, null);
                *ppInNestedType = pTypeDef;
                return(pTypeDef->pMetaData);
            }

            default:
                Sys.Crash("MetaData.GetResolutionScopeMetaData(): Cannot resolve token: 0x%08x", resolutionScopeToken);
                return(null);
            }
        }
Beispiel #2
0
        public static tMD_TypeDef *GetTypeDefFromFullName(/*STRING*/ byte *assemblyName, /*STRING*/ byte *nameSpace, /*STRING*/ byte *name)
        {
            tMetaData *pTypeMetaData;

            pTypeMetaData = CLIFile.GetMetaDataForAssembly(assemblyName);

            // Note that this cannot get a nested class, as this final parameter is always null
            return(MetaData.GetTypeDefFromName(pTypeMetaData, nameSpace, name, null, /* assertExists */ 1));
        }