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); } }