public static void Populate(this IIocRegistrar registrar, IEnumerable <ServiceDescriptor> descriptors) { Ensure.NotNull(registrar, nameof(registrar)); if (descriptors != null) { foreach (var descriptor in descriptors) { var lifetime = GetLifetimeType(descriptor.Lifetime); if (descriptor.ImplementationType != null) { registrar.RegisterType(descriptor.ServiceType, descriptor.ImplementationType, lifetime); } else if (descriptor.ImplementationFactory != null) { registrar.RegisterDelegate(descriptor.ServiceType, r => descriptor.ImplementationFactory(r.GetService <IServiceProvider>()), lifetime); } else { registrar.RegisterInstance(descriptor.ServiceType, descriptor.ImplementationInstance); } } } }