Autofac

Source
NuGet Package NServiceBus.Autofac (5.x)
Target NServiceBus Version: 5.x

NServiceBus can be configured to use Autofac for dependency injection.

Default usage

busConfiguration.UseContainer<AutofacBuilder>();

Using an existing container

var builder = new ContainerBuilder();
builder.RegisterInstance(new MyService());
var container = builder.Build();
busConfiguration.UseContainer<AutofacBuilder>(
    customizations: customizations =>
    {
        customizations.ExistingLifetimeScope(container);
    });
Although it is possible to update the container after passing it to NServiceBus using the ContainerBuilder.Update method, from Autofac 4.2.1 onwards that method is marked as obsolete. It is recommended not to use this method to update the container after it has been passed to NServiceBus.

DependencyLifecycle mapping

DependencyLifecycle maps to Autofac instance scopes as follows:

DependencyLifecycleAutofac instance scope
InstancePerCallInstance Per Dependency
InstancePerUnitOfWorkInstance Per Lifetime Scope
SingleInstanceSingle Instance

Samples


Last modified