public TimedEventReader(IEventReader inner, int threshold, ILogger <TimedEventReader> logger) { if (threshold <= 0) { throw new ArgumentOutOfRangeException(nameof(threshold), "The threshold needs to be greater than or equal to 1."); } _inner = inner ?? throw new ArgumentNullException(nameof(inner)); _threshold = threshold; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _name = inner.GetType().Name.EndsWith("Reader") ? inner.GetType().Name.Substring(0, inner.GetType().Name.Length - 6) : inner.GetType().Name; }