示例#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);
        }
示例#2
0
        /// <summary>
        /// Encodes literal of type <see cref="Type"/> (possibly null).
        /// </summary>
        /// <param name="serializedTypeName">The name of the type, or null.</param>
        /// <exception cref="ArgumentException"><paramref name="serializedTypeName"/> is empty.</exception>
        public void SystemType(string?serializedTypeName)
        {
            if (serializedTypeName != null && serializedTypeName.Length == 0)
            {
                Throw.ArgumentEmptyString(nameof(serializedTypeName));
            }

            String(serializedTypeName);
        }
示例#3
0
        public void Name(string name)
        {
            if (name == null)
            {
                Throw.ArgumentNull(nameof(name));
            }
            if (name.Length == 0)
            {
                Throw.ArgumentEmptyString(nameof(name));
            }

            Builder.WriteSerializedString(name);
        }
示例#4
0
        public void Enum(string enumTypeName)
        {
            if (enumTypeName == null)
            {
                Throw.ArgumentNull(nameof(enumTypeName));
            }
            if (enumTypeName.Length == 0)
            {
                Throw.ArgumentEmptyString(nameof(enumTypeName));
            }

            WriteTypeCode(SerializationTypeCode.Enum);
            Builder.WriteSerializedString(enumTypeName);
        }