/// <summary>Creates the container and the `IServiceProvider` because its implemented by `IContainer` -
        /// you get simply the best of both worlds.</summary>
        public static IContainer Create(
            IEnumerable <ServiceDescriptor> services,
            Func <IRegistrator, ServiceDescriptor, bool> registerService = null)
        {
            var container = new Container(Rules.MicrosoftDependencyInjectionRules);

            container.Use <IServiceScopeFactory>(r => new DryIocServiceScopeFactory(r));
            container.Populate(services, registerService);

            return(container);
        }