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