Table of Contents

Class ServiceCollectionExtensions

Namespace
Savvyio.Extensions.DependencyInjection.RabbitMQ
Assembly
Savvyio.Extensions.DependencyInjection.RabbitMQ.dll

Extension methods for the IServiceCollection interface.

public static class ServiceCollectionExtensions
Inheritance
ServiceCollectionExtensions

Examples

Register RabbitMQ command queues and event buses in the DI container with AddRabbitMqCommandQueue and AddRabbitMqEventBus. Both methods configure AMQP connection settings and register the concrete queue/bus types.

using System;
using Microsoft.Extensions.DependencyInjection;
using Savvyio.Extensions.DependencyInjection;
using Savvyio.Extensions.DependencyInjection.RabbitMQ;

namespace ExampleApp;

public static class RabbitMqRegistration
{
    public static IServiceCollection Configure(IServiceCollection services)
    {
        services.AddSavvyIO();
        services.AddRabbitMqCommandQueue(options =>
        {
            options.AmqpUrl = new Uri("amqp://guest:guest@localhost:5672");
            options.QueueName = "account-commands";
            options.Durable = true;
        });
        services.AddRabbitMqEventBus(options =>
        {
            options.AmqpUrl = new Uri("amqp://guest:guest@localhost:5672");
            options.ExchangeName = "account-events";
        });
        return services;
    }
}

Methods

AddRabbitMqCommandQueue(IServiceCollection, Action<RabbitMqCommandQueueOptions>, Action<ServiceOptions>)

Adds an RabbitMqCommandQueue implementation to the specified IServiceCollection.

public static IServiceCollection AddRabbitMqCommandQueue(this IServiceCollection services, Action<RabbitMqCommandQueueOptions> rabbitMqSetup, Action<ServiceOptions> serviceSetup = null)

Parameters

services IServiceCollection

The IServiceCollection to extend.

rabbitMqSetup Action<RabbitMqCommandQueueOptions>

The RabbitMqCommandQueueOptions that needs to be configured.

serviceSetup Action<ServiceOptions>

The ServiceOptions which may be configured.

Returns

IServiceCollection

A reference to services so that additional calls can be chained.

Remarks

The implementation will be type forwarded accordingly.

Exceptions

ArgumentNullException

services cannot be null.

AddRabbitMqCommandQueue<TMarker>(IServiceCollection, Action<RabbitMqCommandQueueOptions<TMarker>>, Action<ServiceOptions>)

Adds an RabbitMqCommandQueue<TMarker> implementation to the specified IServiceCollection.

public static IServiceCollection AddRabbitMqCommandQueue<TMarker>(this IServiceCollection services, Action<RabbitMqCommandQueueOptions<TMarker>> rabbitMqSetup, Action<ServiceOptions> serviceSetup = null)

Parameters

services IServiceCollection

The IServiceCollection to extend.

rabbitMqSetup Action<RabbitMqCommandQueueOptions<TMarker>>

The RabbitMqCommandQueueOptions<TMarker> that needs to be configured.

serviceSetup Action<ServiceOptions>

The ServiceOptions which may be configured.

Returns

IServiceCollection

A reference to services so that additional calls can be chained.

Type Parameters

TMarker

Remarks

The implementation will be type forwarded accordingly.

Exceptions

ArgumentNullException

services cannot be null.

AddRabbitMqEventBus(IServiceCollection, Action<RabbitMqEventBusOptions>, Action<ServiceOptions>)

Adds an RabbitMqEventBus implementation to the specified IServiceCollection.

public static IServiceCollection AddRabbitMqEventBus(this IServiceCollection services, Action<RabbitMqEventBusOptions> rabbitMqSetup, Action<ServiceOptions> serviceSetup = null)

Parameters

services IServiceCollection

The IServiceCollection to extend.

rabbitMqSetup Action<RabbitMqEventBusOptions>

The RabbitMqEventBusOptions that needs to be configured.

serviceSetup Action<ServiceOptions>

The ServiceOptions which may be configured.

Returns

IServiceCollection

A reference to services so that additional calls can be chained.

Remarks

The implementation will be type forwarded accordingly.

Exceptions

ArgumentNullException

services cannot be null.

AddRabbitMqEventBus<TMarker>(IServiceCollection, Action<RabbitMqEventBusOptions<TMarker>>, Action<ServiceOptions>)

Adds an RabbitMqEventBus<TMarker> implementation to the specified IServiceCollection.

public static IServiceCollection AddRabbitMqEventBus<TMarker>(this IServiceCollection services, Action<RabbitMqEventBusOptions<TMarker>> rabbitMqSetup, Action<ServiceOptions> serviceSetup = null)

Parameters

services IServiceCollection

The IServiceCollection to extend.

rabbitMqSetup Action<RabbitMqEventBusOptions<TMarker>>

The RabbitMqEventBusOptions<TMarker> that needs to be configured.

serviceSetup Action<ServiceOptions>

The ServiceOptions which may be configured.

Returns

IServiceCollection

A reference to services so that additional calls can be chained.

Type Parameters

TMarker

Remarks

The implementation will be type forwarded accordingly.

Exceptions

ArgumentNullException

services cannot be null.