public ImplMapEntry(MetadataDirectory directory, ImplMapMetadataTableRow row) { this.FileOffset = string.Format("0x{0:x}", row.FileOffset); this.ImportName = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.ImportName.Value); this.ImportScope = row.ImportScope.Value.ToString(); this.MappingFlags = string.Format("0x:{0:x}", row.MappingFlags); this.MemberForward = row.MemberForward.ToString(); }
public void ImplMap_WhenCreated_OffsetIsMovedOn() { ICodedIndexResolver resolver = IndexHelper.CreateCodedIndexResolver(2); IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2); Offset offset = 0; byte[] contents = new byte[10]; ImplMapMetadataTableRow row = new ImplMapMetadataTableRow(contents, offset, resolver, indexDetails); Assert.AreEqual(8, offset.Current); }
public void ImplMap_WhenCreated_FieldsAreReadCorrectly() { ICodedIndexResolver resolver = IndexHelper.CreateCodedIndexResolver(2); IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2); byte[] contents = new byte[] { 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 }; ImplMapMetadataTableRow row = new ImplMapMetadataTableRow(contents, 0, resolver, indexDetails); Assert.AreEqual(PInvokeAttributes.NoMangle, row.MappingFlags); Assert.IsNotNull(row.MemberForward); Assert.AreEqual(1, row.ImportName.Value); Assert.AreEqual(1, row.ImportScope.Value); }