protected override void Load(ContainerBuilder builder)
        {
            Contract.Requires(builder != null);

            builder.RegisterGeneric(typeof(PluginsMetadataCache <>)).SingleInstance();
            builder.RegisterGeneric(typeof(PluginsContainer <>)).As(typeof(IPluginsContainer <>)).InstancePerLifetimeScope();
            builder.RegisterGeneric(typeof(NamedPlugins <>)).As(typeof(INamedPlugins <>)).InstancePerLifetimeScope();
            Plugins.FindAndRegisterModules(builder);

            base.Load(builder);
        }