/// <summary> /// Initializes a new instance of the <see cref="MqttConsumer" /> class. /// </summary> /// <param name="broker"> /// The <see cref="IBroker" /> that is instantiating the consumer. /// </param> /// <param name="endpoint"> /// The endpoint to be consumed. /// </param> /// <param name="behaviorsProvider"> /// The <see cref="IBrokerBehaviorsProvider{TBehavior}" />. /// </param> /// <param name="serviceProvider"> /// The <see cref="IServiceProvider" /> to be used to resolve the needed services. /// </param> /// <param name="logger"> /// The <see cref="IInboundLogger{TCategoryName}" />. /// </param> public MqttConsumer( MqttBroker broker, MqttConsumerEndpoint endpoint, IBrokerBehaviorsProvider <IConsumerBehavior> behaviorsProvider, IServiceProvider serviceProvider, IInboundLogger <MqttConsumer> logger) : base(broker, endpoint, behaviorsProvider, serviceProvider, logger) { Check.NotNull(serviceProvider, nameof(serviceProvider)); _logger = Check.NotNull(logger, nameof(logger)); _clientFactory = serviceProvider.GetRequiredService <IMqttClientsCache>(); }