Пример #1
0
        public FailureInvoker(IServiceProvider serviceProvider
                              , MessageContext context)
        {
            _serviceScope    = serviceProvider.CreateScope();
            _serviceProvider = _serviceScope.ServiceProvider;
            _failureOptions  = _serviceProvider.GetRequiredService <FailureHandleOptions>();
            Context          = context;

            SetUpFailureContext();
        }
Пример #2
0
        public void AddServices(IServiceCollection serviceCollection)
        {
            var options = new FailureHandleOptions();

            _configure(options);

            var provider      = serviceCollection.BuildServiceProvider();
            var rabbitOptions = provider.GetRequiredService <RabbitOptions>();

            options.BuildWithDefaultSelfExchangeName(rabbitOptions.DefaultExchangeName, rabbitOptions.DefaultDeadLetterExchange);

            foreach (var item in options.DeadLetterInfos)
            {
                serviceCollection.AddScoped(item.CallbackType, item.CallbackType);
            }

            serviceCollection.AddSingleton(options);
        }