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.