===================== Specifying DI Manager ===================== - The XML configuration file has a required element **diManagers**, for specifying types that implement interface **IoC.Configuration.DiContainer.IDiManager**. The **IoC.Configuration.DiContainer.IDiManager** implementations are specified in child **diManager** elements. - Also, **diManagers** element has an attribute **activeDiManagerName**, that specifies which **IoC.Configuration.DiContainer.IDiManager** will be used to handle **IoC** type bindings and type resolutions, as well as some other dependency injection related behaviour (such as valid module types, etc). .. note:: Currently two implementations of **IoC.Configuration.DiContainer.IDiManager** are available: **IoC.Configuration.Ninject.NinjectDiManager** and **IoC.Configuration.Autofac.AutofacDiManager** in Nuget packages `IoC.Configuration.Ninject `_ and `IoC.Configuration.Autofac `_ - The selected **IoC.Configuration.DiContainer.IDiManager** implementation (e.g., **IoC.Configuration.Ninject.NinjectDiManager**, **IoC.Configuration.Autofac.AutofacDiManager**) handles type bindings that are specified in **IoC.Configuration** modules, as well as type resolutions. Example of this element is shown below. To switch between **Ninject** and **Aurofac** containers, one needs to set the value of **activeDiManagerName** to either **Ninject** or **Aurofac**. .. code-block:: xml :linenos: