コード例 #1
0
        public IMetadataTable GetOrCreate(MetadataTableType type)
        {
            var table = _tables[(int)type];

            if (table == null)
            {
                table = MetadataTableFactory.Create(type);
                _tables[(int)type] = table;
            }
            return(table);
        }
コード例 #2
0
        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);
        }