コード例 #1
0
        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);
                    }
                }
            }
        }