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

Latest commit

 

History

History
49 lines (46 loc) · 1.6 KB

README.md

File metadata and controls

49 lines (46 loc) · 1.6 KB

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");
    }
}