Skip to content
This repository has been archived by the owner on Jan 24, 2025. It is now read-only.

Autofac inspired `Module` structure for `MassTransit` that is used by calling `.RegisterModule<T>()` in `.AddMassTransit`.

Notifications You must be signed in to change notification settings

laget-se/MassTransit.Extensions.Module

Repository files navigation

MassTransit.Extensions.Module

Autofac inspired Module structure for MassTransit that is used by calling .RegisterModule<T>() in .AddMassTransit.

Usage

HostBuilder

public class Program
{
    private static async Task Main()
    {
        await Host.CreateDefaultBuilder()
            .ConfigureContainer<ContainerBuilder>((context, builder) =>
            {
            })
            .ConfigureServices((context, services) =>
            {
                services.AddOptions<AzureServiceBusTransportOptions>().Configure(options =>
                {
                    options.ConnectionString = context.Configuration.GetValue<string>("AzureServiceBusTransportOptions:ConnectionString");
                });
                services.AddMassTransit(x =>
                {
                    x.RegisterModule<SomeModule>();

                    x.SetKebabCaseEndpointNameFormatter();
                    x.UsingAzureServiceBus((context, cfg) =>
                    {
                        cfg.ConfigureEndpoints(context);
                    });
                });
            })
            .Build()
            .RunAsync();
    }
}

Module

public class OrderModule : Module
{
    public override void Configure(IBusRegistrationConfigurator configurator)
    {
        configurator.AddConsumer<AddedConsumer>().Endpoint(config => config.InstanceId = "Order.Service");
        configurator.AddConsumer<UpdatedConsumer>().Endpoint(config => config.InstanceId = "Order.Service");
        configurator.AddConsumer<DeletedConsumer>().Endpoint(config => config.InstanceId = "Order.Service");
    }
}

About

Autofac inspired `Module` structure for `MassTransit` that is used by calling `.RegisterModule<T>()` in `.AddMassTransit`.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages