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