Example #1
0
        /// <summary>
        /// 创建 ServiceProvider 对象
        /// </summary>
        /// <param name="configure">服务注册配置</param>
        /// <param name="fallback">回退服务提供程序,若获取不到指定类型的服务,则回退到这个服务提供程序获取</param>
        public static ServiceProvider Create(Action <ServiceRegistration> configure, IServiceProvider fallback = null)
        {
            if (fallback is ServiceProvider instance)
            {
                return(instance.Merge(Create(configure)));
            }


            var registration = new ServiceRegistration();

            configure(registration);

            return(new ServiceProvider(registration.Build(), fallback));
        }