One of the goals of the Reactor Service Bus project is to not force adopters into a particular IoC container implementation. There are several great containers on the open source market, and they each seem to have a strong adoption rate. We provide adapters to these top 5 containers:

Configuring these adapters is quite easy. Just create a reference to the Reactor.Containers.[name], create an instance of Reactor.Containers.[name].ContainerCustomizer and call the InitializeReactor method. The only decision to make is, do you want the adapter to create a default container instance for you, or do you already have one configured for use? Each IContainerCustomizer provided accepts an existing instance through a constructor overload.

The following is an example of how to configure Reactor Service Bus to use an existing Unity container instance:

var containerCustomizer = new ContainerCustomizer(existingUnityContainerInstance);


Common Service Locator

Reactor Service Bus abstracts specific container implementations by using the CommonServiceLocator. The adapters mentioned above create specific service locator adapters and configure their use.


The CommonServiceLocator library provides only functionality to locate or provide object instances, not register them. For this reason, the IServiceRegistrar interface exists. It allows us to register types or instances with the same underlying container used by the current implementation of IServiceLocator. The adapters mentioned above are responsible for wiring up the specific container using this interface.

Last edited Feb 14, 2011 at 9:03 PM by akilhoffer, version 1


No comments yet.