Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Child containers

Component: NServiceBus
NuGet Package: NServiceBus (8.1)

Child containers are a snapshot of the main container providing an additional instance lifetime scope.

Child container scope in NServiceBus

NServiceBus creates a child container for each transport message that is received. During message processing, all InstancePerUnitOfWork scoped instances that are created are resolved as singletons within the context of the same message. This is helpful to support the sharing of database sessions and other resources with lifetimes specific to the processed message.

Objects can be configured in a child container scope using the scoped lifetime:

endpointConfiguration.RegisterComponents(
    registration: components =>
    {
        components.AddScoped<InstancePerUnitOfWork>();
    });

Deterministic disposal

Child containers automatically dispose all IDisposable instances created with InstancePerUnitOfWork lifetime once the message is processed. This is useful for managing things like database sessions which must be disposed of properly.


Last modified