/// <summary>
 /// Provides dependencies for ICommandMultipleResultExpressions.
 /// </summary>
 /// <param name="propertyMetadataExtractor">The property metadata extractor.</param>
 /// <param name="multipleResultSetCommandProcessorFactory">The multiple result set command processor factory.</param>
 public CommandMultipleResultExpressionFactory(
     IPropertyMetadataExtractor propertyMetadataExtractor,
     IMultipleResultSetCommandProcessorFactory multipleResultSetCommandProcessorFactory)
 {
     _propertyMetadataExtractor = propertyMetadataExtractor;
     _multipleResultSetCommandProcessorFactory = multipleResultSetCommandProcessorFactory;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="CommandMultipleResultExpression{TFilter}" /> class.
        /// </summary>
        /// <param name="propertyMetadataExtractor">The property metadata extractor.</param>
        /// <param name="multipleResultSetCommandProcessorFactory">The multiple result set command processor factory.</param>
        /// <param name="command">The CommandBuilder.</param>
        /// <param name="resultTypes">The result types.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        /// <exception cref="ArgumentNullException"></exception>
        public CommandMultipleResultExpression(
            IPropertyMetadataExtractor propertyMetadataExtractor,
            IMultipleResultSetCommandProcessorFactory multipleResultSetCommandProcessorFactory,
            ICommandBuilderInfo <TFilter> command, params Type[] resultTypes)
            : base(propertyMetadataExtractor, command)
        {
            if (multipleResultSetCommandProcessorFactory == null)
            {
                throw new ArgumentNullException(nameof(multipleResultSetCommandProcessorFactory));
            }

            _multipleResultSetCommandProcessorFactory = multipleResultSetCommandProcessorFactory;
            _resultTypes = resultTypes;
        }