public static IServiceCollection AddRabbitMq(this IServiceCollection services, IConfiguration configuration)
        {
            var rabbitMqConnection = new RabbitMqConnectionSettings();

            configuration.GetSection("RabbitMq:Connection").Bind(rabbitMqConnection);
            services.AddSingleton(rabbitMqConnection);

            var rabbitMqRouting = new RabbitMqPubSubSettings();

            configuration.GetSection("RabbitMq:Routing").Bind(rabbitMqRouting);
            services.AddSingleton(rabbitMqRouting);

            services.AddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>();
            services.AddSingleton <IPooledObjectPolicy <IModel>, RabbitMqModelPooledObjectPolicyAsync>();

            return(services);
        }
 /// <summary>
 /// Констурктор
 /// </summary>
 /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param>
 /// <param name="options">Общии настройки подключения для publisher/consumer</param>
 /// <param name="logger"></param>
 /// <param name="args"></param>
 protected RabbitMqProducerBase(
     IPooledObjectPolicy <IModel> pooledChannelPolicy,
     RabbitMqPubSubSettings options,
     ILogger logger,
     (string key, object val)[]?args = default)
Ejemplo n.º 3
0
 /// <summary>
 /// Конструктор с параметрами
 /// </summary>
 /// <param name="mediator">Посредник Джимми Б.</param>
 /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param>
 /// <param name="options">Общии настройки подключения для publisher/consumer</param>
 /// <param name="args"></param>
 /// <param name="logger"></param>
 public RabbitMqConsumerBase(
     IMediator mediator,
     IPooledObjectPolicy <IModel> pooledChannelPolicy,
     RabbitMqPubSubSettings options,
     ILogger logger,
     (string key, object val)[]?args = default)
 /// <summary>
 /// Констурктор с параметрами
 /// </summary>
 /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param>
 /// <param name="options">Общии настройки подключения для publisher/consumer</param>
 /// <param name="args"></param>
 protected RabbitMqClientBase(
     IPooledObjectPolicy <IModel> pooledChannelPolicy,
     RabbitMqPubSubSettings options,
     (string key, object val)[]?args = default)