Unity

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

NServiceBus can be configured to use Unity for dependency injection.

Default usage

endpointConfiguration.UseContainer<UnityBuilder>();

Existing instance

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

DependencyLifecycle mapping

The DependencyLifecycle maps to Unity in the following way.

DependencyLifecycleUnity Equivalent
InstancePerCallTransient Lifetime Manager
InstancePerUnitOfWorkHierarchical Lifetime Manager
SingleInstanceContainer Controlled Lifetime Manager

Unity dependency breaking changes

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