Пример #1
0
        /// <summary>
        ///    Constructs and initializes a new instance of <see
        ///    cref="Object" /> by reading the contents from a
        ///    specified position in a specified file.
        /// </summary>
        /// <param name="file">
        ///    A <see cref="Asf.File" /> object containing the file from
        ///    which the contents of the new instance are to be read.
        /// </param>
        /// <param name="position">
        ///    A <see cref="long" /> value specify at what position to
        ///    read the object.
        /// </param>
        /// <exception cref="ArgumentNullException">
        ///    <paramref name="file" /> is <see langword="null" />.
        /// </exception>
        /// <exception cref="ArgumentOutOfRangeException">
        ///    <paramref name="position" /> is less than zero or greater
        ///    than the size of the file.
        /// </exception>
        protected Object(File file, long position)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            if (position < 0 ||
                position > file.Length - 24)
            {
                throw new ArgumentOutOfRangeException(nameof(position));
            }

            file.Seek(position);
            id           = file.ReadGuid();
            OriginalSize = file.ReadQWord();
        }