Unity

Source
NuGet Package NServiceBus.Unity (10.x)
Target NServiceBus Version: 7.x

NServiceBus can be configured to use Unity for dependency injection.

Default usage

endpointConfiguration.UseContainer<UnityBuilder>();

Using an existing container

var container = new UnityContainer();
container.RegisterInstance(new MyService());
endpointConfiguration.UseContainer<UnityBuilder>(
    customizations: customizations =>
    {
        customizations.UseExistingContainer(container);
    });

Breaking changes in Unity

Breaking changes in Unity will be handled as follows:

  • Changes that require a change to the NServiceBus.Unity API (e.g. changes to IUnityContainer) will be released in a new major version of NServiceBus.Unity.
  • Changes that do not require a change to the NServiceBus.Unity API will be released as a patch release to the latest minor version of NServiceBus.Unity.
  • If Unity releases a new major version, it will be supported in a new minor release of NServiceBus.Unity.

DependencyLifecycle mapping

DependencyLifecycle maps to Unity lifetime managers as follows:

DependencyLifecycleUnity Equivalent
InstancePerCallTransientLifetimeManager
InstancePerUnitOfWorkHierarchicalLifetimeManager
SingleInstanceContainerControlledLifetimeManager

Property Injection

This dependency injection container adapter automatically enables property injection for known types. Use the Func overload of .ConfigureComponent to get full control over the injected properties if needed.

Samples


Last modified