Esempio n. 1
0
        internal NETTableReader(TablesHeap tablesheap)
        {
            using (BinaryReader reader = new BinaryReader(new MemoryStream(tablesheap.Contents)))
            {
                tablesheap._header = ASMGlobals.ReadStructureFromReader<Structures.METADATA_TABLE_HEADER>(reader);
                this.tablesHeap = tablesheap;

                for (int i = 0; i < 45; i++)
                    if (tablesHeap.HasTable((MetaDataTableType)i))
                    {
                        tablesHeap._tablecount++;
                    }

                tablesHeap._tablereader = this;
                if ((tablesHeap.HeapOffsetSizes & 1) == 1)
                    tablesHeap._netheader.StringsHeap._indexsize = 4;
                if ((tablesHeap.HeapOffsetSizes & 2) == 2)
                    tablesHeap._netheader.GuidHeap._indexsize = 4;
                if ((tablesHeap.HeapOffsetSizes & 4) == 4)
                    tablesHeap._netheader.BlobHeap._indexsize = 4;

                ReadTableHeaders(reader);
            }
        }
Esempio n. 2
0
 public void ClearCache()
 {
     _tableheap = null;
     _stringsheap = null;
     _usheap = null;
     _blobheap = null;
     _guidheap = null;
 }
Esempio n. 3
0
 public void LoadCache()
 {
     _tableheap = TablesHeap;
     _stringsheap = StringsHeap;
     _usheap = UserStringsHeap;
     _blobheap = BlobHeap;
     _guidheap = GuidHeap;
 }
Esempio n. 4
0
 internal MetaDataTable(TablesHeap tableHeap, bool createNew)
 {
     TablesHeap = tableHeap;
     _tablesize = -1;
 }