Mono.Cecil.PE.ImageReader.ReadMetadataStream C# (CSharp) Method

ReadMetadataStream() private method

private ReadMetadataStream ( Section section ) : void
section Section
return void
        void ReadMetadataStream(Section section)
        {
            // Offset		4
            uint offset = metadata.VirtualAddress - section.VirtualAddress + ReadUInt32 (); // relative to the section start

            // Size			4
            uint size = ReadUInt32 ();

            var data = ReadHeapData (offset, size);

            var name = ReadAlignedString (16);
            switch (name) {
            case "#~":
            case "#-":
                image.TableHeap = new TableHeap (data);
                table_heap_offset = offset;
                break;
            case "#Strings":
                image.StringHeap = new StringHeap (data);
                break;
            case "#Blob":
                image.BlobHeap = new BlobHeap (data);
                break;
            case "#GUID":
                image.GuidHeap = new GuidHeap (data);
                break;
            case "#US":
                image.UserStringHeap = new UserStringHeap (data);
                break;
            case "#Pdb":
                image.PdbHeap = new PdbHeap (data);
                break;
            }
        }