public ModuleEntry(MetadataDirectory directory, ModuleMetadataTableRow row)
 {
     this.FileOffset = string.Format("0x{0:x}", row.FileOffset);
     this.Name       = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.Name.Value);
     this.EncBaseId  = row.EncBaseId.ToString();
     this.EncId      = row.EncId.ToString();
     this.Generation = row.Generation.ToString();
     this.Mvid       = ((GuidStream)directory.Streams[Streams.GuidStream]).GetGuid(row.Mvid).ToString();
 }
        public void Module_WhenCreated_OffsetIsMovedOn()
        {
            byte[]        contents     = new byte[10];
            Offset        offset       = 0;
            IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2);

            ModuleMetadataTableRow row = new ModuleMetadataTableRow(contents, offset, indexDetails);

            Assert.AreEqual(10, offset.Current);
        }
        public void Module_WhenCreated_FieldsAreReadCorrectly()
        {
            byte[] contents = new byte[] {
                0x00, 0x00,
                0x04, 0x00,
                0x01, 0x00,
                0x02, 0x00,
                0x03, 0x00
            };
            Offset        offset       = 0;
            IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2);

            ModuleMetadataTableRow row = new ModuleMetadataTableRow(contents, offset, indexDetails);

            Assert.AreEqual(0, row.Generation);
            Assert.AreEqual(4, row.Name.Value);
            Assert.AreEqual(1, row.Mvid);
            Assert.AreEqual(2, row.EncId);
            Assert.AreEqual(3, row.EncBaseId);
        }
        private void LoadModuleMetadata()
        {
            MetadataRow[] table = _stream.Tables[MetadataTables.Module];
            int           count = table.Length;

            for (int i = 0; i < count; i++)
            {
                ModuleMetadataTableRow row = table[i] as ModuleMetadataTableRow;

                GuidStream stream = _references.Metadata.Streams[Streams.GuidStream] as GuidStream;

                ModuleDef module = new ModuleDef(
                    _assembly.StringStream.GetString(row.Name.Value),
                    _assembly,
                    stream.GetGuid(row.Mvid)
                    );

                _map.Add(MetadataTables.Module, row, module);
                _assembly.Modules.Add(module);
            }
        }