Initialization

Component: NServiceBus | Nuget: NServiceBus (Version: 6.x)

Classes that implement NServiceBus.INeedInitialization are created and called as one of the first steps in the bus creation life-cycle. Use INeedInitialization to register components that will be used later in the bus creation life-cycle.

Instances are:

  • Located by assembly scanning.
  • Created as one of the very first steps when the bus is created.
  • Created on the same thread that is creating the bus.
  • Created with Activator.CreateInstance(...) which means they
  • Are not resolved out of the Container (even if they are registered there).
  • Will not have any dependencies injected.
  • Must have a default constructor.

All calls are made in sequence on the thread that is creating the bus. The order of these calls is determined by the order of the scanned types list as a result of the assembly scan.

Exceptions thrown by instances of INeedInitialization are not handled by NServiceBus. These will bubble up to the caller creating the endpoint.

Instances of INeedInitialization are created after type-scanning has occurred. Do not attempt to alter the types to be scanned from an instance of INeedInitialization.
Edit
class NeedsInitialization :
    INeedInitialization
{
    public void Customize(EndpointConfiguration endpointConfiguration)
    {
        // Perform initialization
        // This is after Type Scanning.
        // Do NOT call the following here:
        // endpointConfiguration.AssemblyScanner();
    }
}

Samples


Last modified