예제 #1
0
        public RetryErrorFilter(IBusEngine engine, RetryErrorFilterOptions options, ILogger <RetryErrorFilter> logger)
        {
            _engine  = engine ?? throw new ArgumentNullException(nameof(engine));
            _options = options ?? throw new ArgumentNullException(nameof(options));
            _logger  = logger ?? throw new ArgumentNullException(nameof(logger));

            if (_options.MaxRetries < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(_options.MaxRetries), "maxRetries must be greater or equal than 0");
            }
        }
예제 #2
0
        public IErrorFilter CreateErrorFilter(IConfigurationSection settings)
        {
            var engine = _serviceProvider.GetRequiredService <IBusEngine>();
            var logger = _serviceProvider.GetRequiredService <ILogger <RetryErrorFilter> >();

            var options = new RetryErrorFilterOptions();

            settings.Bind(options);

            return(new RetryErrorFilter(engine, options, logger));
        }