示例#1
0
        /// <summary>
        /// Adds PDB checksum entry.
        /// </summary>
        /// <param name="algorithmName">Hash algorithm name (e.g. "SHA256").</param>
        /// <param name="checksum">Checksum.</param>
        /// <exception cref="ArgumentNullException"><paramref name="algorithmName"/> or <paramref name="checksum"/> is null.</exception>
        /// <exception cref="ArgumentException"><paramref name="algorithmName"/> or <paramref name="checksum"/> is empty.</exception>
        public void AddPdbChecksumEntry(string algorithmName, ImmutableArray <byte> checksum)
        {
            if (algorithmName == null)
            {
                Throw.ArgumentNull(nameof(algorithmName));
            }

            if (algorithmName.Length == 0)
            {
                Throw.ArgumentEmptyString(nameof(algorithmName));
            }

            if (checksum.IsDefault)
            {
                Throw.ArgumentNull(nameof(checksum));
            }

            if (checksum.Length == 0)
            {
                Throw.ArgumentEmptyArray(nameof(checksum));
            }

            int dataSize = WritePdbChecksumData(_dataBuilder, algorithmName, checksum);

            AddEntry(
                type: DebugDirectoryEntryType.PdbChecksum,
                version: 0x00000001,
                stamp: 0x00000000,
                dataSize);
        }