Skip to content

ServiceResolver.Ioc.SimpleInjector

This page demonstrates how ServiceBus.Core can be integrated with ServiceResolver.Ioc.SimpleInjector.

The goal is to show ServiceBus registration and usage patterns rather than documenting the container itself.


Install Packages

dotnet add package ServiceResolver.Ioc

dotnet add package ServiceResolver.Ioc.SimpleInjector

Register Formatter

Conceptually:

serviceProvider.RegisterSingleton<IDataFormatter>(
    () => new MsDataFormatter());

Register RabbitMQ Infrastructure

Example:

serviceProvider.RegisterSingleton<IConnectionFactory>(
    () => new ConnectionFactory
    {
        HostName = "localhost"
    });

Register Publisher

Conceptually:

serviceProvider.RegisterSingleton<IAsyncPublisher>(
    () =>
    {
        // Build publisher
    });

Register Subscriber

Conceptually:

serviceProvider.RegisterSingleton<
    IAsyncSubscriber<OrderCreated>>(
        () =>
        {
            // Build subscriber
        });

Resolve Publisher

var publisher =
    serviceProvider
        .GetService<IAsyncPublisher>();

Resolve Subscriber

var subscriber =
    serviceProvider
        .GetService<
            IAsyncSubscriber<OrderCreated>>();

Recommended Usage

graph LR

    Application --> IServiceProvider

    IServiceProvider --> Publisher

    IServiceProvider --> Subscriber

Applications should consume messaging abstractions and allow the container to manage construction and lifetime concerns.


Additional Information

ServiceResolver.Ioc.SimpleInjector has its own dedicated documentation.

This page intentionally focuses only on the integration points required to use ServiceBus.Core components.