/// <summary> /// Initializes a new instance of the <see cref="ImageExtractor{T1, T2}"/> class. /// </summary> /// <param name="loggerFactory">The logger factory.</param> /// <param name="fileSystemStrategy">The file system strategy.</param> /// <param name="readerFactory">The image reader factory.</param> public ImageExtractor( ILoggerFactory loggerFactory, IFileSystemStrategy fileSystemStrategy, IImageReaderFactory <T1, T2> readerFactory) { logger = loggerFactory?.CreateLogger <ImageExtractor <T1, T2> >(); if (logger == null) { throw new ArgumentNullException(nameof(loggerFactory)); } this.fileSystemStrategy = fileSystemStrategy ?? throw new ArgumentNullException(nameof(fileSystemStrategy)); this.readerFactory = readerFactory ?? throw new ArgumentNullException(nameof(readerFactory)); }