public IMetadataTable GetOrCreate(MetadataTableType type) { var table = _tables[(int)type]; if (table == null) { table = MetadataTableFactory.Create(type); _tables[(int)type] = table; } return(table); }
private IMetadataTable[] GetMetadataTables() { var tables = new IMetadataTable[TABLES_COUNT]; var header = ReadStruct <TableHeapHeader>(); var valid = header.MaskValid; for (int index = 0; index < TABLES_COUNT; index++) { if (((valid >> index) & 1) == 1) { var type = (MetadataTableType)index; var count = ReadInt32(); tables[(int)type] = MetadataTableFactory.Create(type, count); } } return(tables); }