public void AssemblyMetadata_WhenCreatedAndIndexesAre4Bytes_ShouldHaveCorrectValues() { IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(4); Offset offset = 0; byte[] contents = { 0x04, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; AssemblyMetadataTableRow row = new AssemblyMetadataTableRow(contents, offset, indexDetails); Assert.AreEqual(AssemblyHashAlgorithms.SHA1, row.HashAlgId); Assert.AreEqual("1.0.0.0", row.GetVersion().ToString()); Assert.AreEqual(AssemblyFlags.SideBySideCompatible, row.Flags); Assert.AreEqual(0, row.PublicKey); Assert.AreEqual(0x1D9A, row.Name.Value); Assert.AreEqual(0x0000, row.Culture.Value); }
public AssemblyEntry(MetadataDirectory directory, AssemblyMetadataTableRow row) { this.FileOffset = string.Format("0x{0:x}", row.FileOffset); this.Name = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.Name.Value); this.Version = row.GetVersion().ToString(); this.Culture = ((StringStream)directory.Streams[Streams.StringStream]).GetString(row.Culture.Value); this.HashAlgId = row.HashAlgId.ToString(); this.Flags = row.Flags.ToString(); this.PublicKey = row.PublicKey.ToString(); }
public void AssemblyMetadata_WhenConstructedWithIndexSizes_ShouldMoveOffset(byte sizeStringIndex, byte sizeBlobIndex, int expected) { IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2, sizeStringIndex, sizeBlobIndex, 2); Offset offset = 0; byte[] contents = new byte[30]; AssemblyMetadataTableRow row = new AssemblyMetadataTableRow(contents, offset, indexDetails); Assert.AreEqual(expected, offset.Current); }
private void LoadAssemblyMetadata() { if (!_stream.Tables.ContainsKey(MetadataTables.Assembly)) { return; } // Always one and only AssemblyMetadataTableRow assemblyRow = _stream.Tables[MetadataTables.Assembly][0] as AssemblyMetadataTableRow; _assembly.Name = _references.Assembly.StringStream.GetString(assemblyRow.Name.Value); _assembly.Version = assemblyRow.GetVersion(); }