public ClassLayoutEntry(MetadataDirectory directory, ClassLayoutMetadataTableRow row)
 {
     this.FileOffset  = string.Format("0x{0:x}", row.FileOffset);
     this.ClassSize   = string.Format("0x{0:x}", row.ClassSize);
     this.PackingSize = string.Format("0x{0:x}", row.PackingSize);
     this.Parent      = string.Format("0x{0:x}", row.Parent.Value);
 }
예제 #2
0
        public void ClassLayout_WhenCreated_OffsetIsMovedOn(byte indexSize, int expected)
        {
            IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(indexSize);
            Offset        offset       = 0;

            byte[] content = new byte[20];

            ClassLayoutMetadataTableRow row = new ClassLayoutMetadataTableRow(content, offset, indexDetails);

            Assert.AreEqual(expected, offset.Current);
        }
예제 #3
0
        public void ClassLayout_WhenCreated_ValuesAreReadCorrectly()
        {
            byte[] content = new byte[] {
                0x01, 0x00,
                0x18, 0x00, 0x00, 0x00,
                0x18, 0x00
            };
            IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2);

            ClassLayoutMetadataTableRow row = new ClassLayoutMetadataTableRow(content, 0, indexDetails);

            Assert.AreEqual(1, row.PackingSize);
            Assert.AreEqual(24, row.ClassSize);
            Assert.AreEqual(24, row.Parent.Value);
        }