Beispiel #1
0
        /// <inheritdoc/>
        public IServiceRegister TryRegister(Type serviceType, Type implementationType, DI.ServiceLifetime serviceLifetime, RegistrationCompareMode mode = RegistrationCompareMode.ServiceType)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }
            if (implementationType == null)
            {
                throw new ArgumentNullException(nameof(implementationType));
            }

            var descriptor = new ServiceDescriptor(serviceType, implementationType, TranslateLifetime(serviceLifetime));

            if (mode == RegistrationCompareMode.ServiceType)
            {
                ServiceCollection.TryAdd(descriptor);
            }
            else if (mode == RegistrationCompareMode.ServiceTypeAndImplementationType)
            {
                ServiceCollection.TryAddEnumerable(descriptor);
            }
            else
            {
                throw new ArgumentOutOfRangeException(nameof(mode));
            }

            return(this);
        }
Beispiel #2
0
        public override IGraphQLBuilder TryRegister(Type serviceType, Type implementationType, DI.ServiceLifetime serviceLifetime)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }
            if (implementationType == null)
            {
                throw new ArgumentNullException(nameof(implementationType));
            }

            _services.TryAdd(new ServiceDescriptor(serviceType, implementationType, TranslateLifetime(serviceLifetime)));
            return(this);
        }