Example #1
0
 public TypeRefEntry(MetadataDirectory directory, TypeRefMetadataTableRow row)
 {
     this.FileOffset      = string.Format("0x{0:x}", row.FileOffset);
     this.Name            = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.Name.Value);
     this.Namespace       = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.Namespace.Value);
     this.ResolutionScope = row.ResolutionScope.ToString();
 }
        public void TypeRef_WhenCreated_OffsetIsMovedOn()
        {
            IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2);

            byte[] contents = new byte[6];
            ICodedIndexResolver resolver = IndexHelper.CreateCodedIndexResolver(2);
            Offset offset = 0;

            TypeRefMetadataTableRow row = new TypeRefMetadataTableRow(contents, offset, resolver, indexDetails);

            Assert.AreEqual(6, offset.Current);
        }
        public void TypeRef_WhenCreated_FieldsAreReadCorrectly()
        {
            byte[] contents = new byte[] {
                0x00, 0x00,
                0x01, 0x00,
                0x02, 0x00
            };
            IIndexDetails       indexDetails = IndexHelper.CreateIndexDetails(2);
            ICodedIndexResolver resolver     = IndexHelper.CreateCodedIndexResolver(2);
            Offset offset = 0;

            TypeRefMetadataTableRow row = new TypeRefMetadataTableRow(contents, offset, resolver, indexDetails);

            Assert.IsNotNull(row.ResolutionScope);
            Assert.AreEqual(1, row.Name.Value);
            Assert.AreEqual(2, row.Namespace.Value);
        }
        private void LoadTypeRefMetadata()
        {
            if (!_stream.Tables.ContainsKey(MetadataTables.TypeRef))
            {
                return;
            }

            MetadataRow[] table = _stream.Tables[MetadataTables.TypeRef];
            int           count = table.Length;

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

                TypeRef typeRef = new TypeRef(
                    _assembly,
                    _assembly.StringStream.GetString(row.Name.Value),
                    _assembly.StringStream.GetString(row.Namespace.Value),
                    row.ResolutionScope
                    );

                _map.Add(MetadataTables.TypeRef, row, typeRef);
            }
        }