public RabbitLightContext(IServiceProvider sp, ContextConfig config) { _config = config; _config.Validate(); _logger = CreateLogger <RabbitLightContext>(); StartMonitor(); var consumerPool = new ConsumerConnectionPool(_config.ConnConfig, CreateLogger <ConsumerConnectionPool>()); _consumerManager = new ConsumerManager(sp, consumerPool, _config); var publisherPool = new PublisherConnectionPool(_config.ConnConfig, CreateLogger <PublisherConnectionPool>()); Publisher = new Publisher.Publisher(publisherPool); ILogger <T> CreateLogger <T>() => sp.GetService <ILoggerFactory>()?.CreateLogger <T>(); }