Esempio n. 1
0
        public static SmartServiceDescriptor Create(ServiceDescriptor descriptor, SmartOptions options = SmartOptions.TryAdd)
        {
            Guard.ArgumentNotNull(descriptor, nameof(descriptor));

            SmartServiceDescriptor rd = null;

            if (descriptor.ImplementationInstance != null)
            {
                rd = new SmartServiceDescriptor(descriptor.ServiceType, descriptor.ImplementationInstance)
                {
                    Options = options
                };
            }
            else if (descriptor.ImplementationFactory != null)
            {
                rd = new SmartServiceDescriptor(descriptor.ServiceType, descriptor.ImplementationFactory, descriptor.Lifetime)
                {
                    Options = options
                };
            }
            else if (descriptor.ImplementationType != null)
            {
                rd = new SmartServiceDescriptor(descriptor.ServiceType, descriptor.ImplementationType, descriptor.Lifetime)
                {
                    Options = options
                };
            }
            return(rd);
        }
Esempio n. 2
0
 public static SmartServiceDescriptor Describe(Type serviceType, Func <IServiceProvider, object> implementationFactory,
                                               ServiceLifetime lifecycle, SmartOptions options = SmartOptions.TryAdd)
 {
     return(new SmartServiceDescriptor(serviceType, implementationFactory, lifecycle)
     {
         Options = options
     });
 }
Esempio n. 3
0
 public static SmartServiceDescriptor Describe(Type serviceType, Type implementationType,
                                               ServiceLifetime lifecycle, SmartOptions options = SmartOptions.TryAdd)
 {
     return(new SmartServiceDescriptor(serviceType, implementationType, lifecycle)
     {
         Options = options
     });
 }
Esempio n. 4
0
        public static SmartServiceDescriptor Instance(Type serviceType, object implementationInstance, SmartOptions options = SmartOptions.TryAdd)
        {
            Guard.ArgumentNotNull(implementationInstance, nameof(implementationInstance));

            return(new SmartServiceDescriptor(serviceType, implementationInstance)
            {
                Options = options
            });
        }
Esempio n. 5
0
        public static SmartServiceDescriptor Instance <TService>(TService implementationInstance, SmartOptions options = SmartOptions.TryAdd)
        {
            Guard.ArgumentNotNull(implementationInstance, nameof(implementationInstance));

            return(Instance(typeof(TService), implementationInstance, options));
        }
Esempio n. 6
0
        public static SmartServiceDescriptor Singleton(Type serviceType, Func <IServiceProvider, object> implementationFactory, SmartOptions options)
        {
            Guard.ArgumentNotNull(serviceType, nameof(serviceType));
            Guard.ArgumentNotNull(implementationFactory, nameof(implementationFactory));

            return(Describe(serviceType, implementationFactory, ServiceLifetime.Singleton, options));
        }
Esempio n. 7
0
        public static SmartServiceDescriptor Singleton <TService>(Func <IServiceProvider, TService> implementationFactory, SmartOptions options = SmartOptions.TryAdd) where TService : class
        {
            Guard.ArgumentNotNull(implementationFactory, nameof(implementationFactory));

            return(Describe(typeof(TService), implementationFactory, ServiceLifetime.Singleton, options));
        }
Esempio n. 8
0
 public static SmartServiceDescriptor Singleton(Type service, Type implementationType, SmartOptions options = SmartOptions.TryAdd)
 {
     return(Describe(service, implementationType, ServiceLifetime.Singleton, options));
 }
Esempio n. 9
0
 public static SmartServiceDescriptor Singleton <TService, TImplementation>(SmartOptions options = SmartOptions.TryAdd)
     where TImplementation : TService
 {
     return(Describe <TService, TImplementation>(ServiceLifetime.Singleton, options));
 }
Esempio n. 10
0
        public static SmartServiceDescriptor Scoped(Type service, Func <IServiceProvider, object> implementationFactory, SmartOptions options = SmartOptions.TryAdd)
        {
            Guard.ArgumentNotNull(service, nameof(service));
            Guard.ArgumentNotNull(implementationFactory, nameof(implementationFactory));

            return(Describe(service, implementationFactory, ServiceLifetime.Scoped, options));
        }
Esempio n. 11
0
        public static SmartServiceDescriptor Transient(Type service, Type implementationType, SmartOptions options = SmartOptions.TryAdd)
        {
            Guard.ArgumentNotNull(service, nameof(service));
            Guard.ArgumentNotNull(implementationType, nameof(implementationType));

            return(Describe(service, implementationType, ServiceLifetime.Transient, options));
        }
Esempio n. 12
0
 private static SmartServiceDescriptor Describe <TService, TImplementation>(ServiceLifetime lifetime, SmartOptions options = SmartOptions.TryAdd)
 {
     return(Describe(typeof(TService), typeof(TImplementation), lifetime, options));
 }
Esempio n. 13
0
 public static SmartServiceDescriptor Transient <TService, TImplementation>(SmartOptions options = SmartOptions.TryAdd) where TImplementation : TService
 {
     return(Describe <TService, TImplementation>(ServiceLifetime.Transient, options));
 }