Unity

Source
NuGet Package NServiceBus.Unity (8.x)
Target NServiceBus Version: 6.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);
    });

DependencyLifecycle mapping

DependencyLifecycle maps to Unity lifetime managers as follows:

DependencyLifecycleUnity Equivalent
InstancePerCallTransientLifetimeManager
InstancePerUnitOfWorkHierarchicalLifetimeManager
SingleInstanceContainerControlledLifetimeManager

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.

Samples


Last modified