/// <summary>
        /// 注册 程序集
        /// </summary>
        public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, Assembly assembly)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException(nameof(assembly));
            }

            var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assembly);

            return(RegisterCollection(dependencyRegister, enumerableConfiguration));
        }
        /// <summary>
        /// 注册 委托
        /// </summary>
        public static IDependencyRegistration RegisterDelegate <TService, TImplementation>(this IDependencyRegister dependencyRegister, Func <IDependencyResolver, TImplementation> implementationDelegate)
            where TService : class
            where TImplementation : class, TService
        {
            if (implementationDelegate == null)
            {
                throw new ArgumentNullException(nameof(implementationDelegate));
            }

            var registerConfiguration = DependencyRegistrationFactory.ForDelegate(typeof(TService), implementationDelegate);

            return(RegisterRegistration(dependencyRegister, registerConfiguration));
        }
        /// <summary>
        /// 注册 实例
        /// </summary>
        public static IDependencyRegistration RegisterInstance(this IDependencyRegister dependencyRegister, Type serviceType, Object implementationInstance)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }
            if (implementationInstance == null)
            {
                throw new ArgumentNullException(nameof(implementationInstance));
            }

            var registerConfiguration = DependencyRegistrationFactory.ForInstance(serviceType, implementationInstance);

            return(RegisterRegistration(dependencyRegister, registerConfiguration));
        }
Example #4
0
        /// <summary>
        ///    注册程序集中使实现特定接口或基类的类型作为依赖服务
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, Type baseType, params Assembly[] assemblys)
        {
            if (baseType == null)
            {
                throw new ArgumentNullException(nameof(baseType));
            }
            if (assemblys == null)
            {
                throw new ArgumentNullException(nameof(assemblys));
            }

            var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assemblys, baseType);

            return(RegisterCollection(dependencyRegister, enumerableConfiguration));
        }
Example #5
0
        /// <summary>
        ///     注册程序集中使用特定命名约定的类型作为依赖服务
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, string name, params Assembly[] assemblys)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (assemblys == null)
            {
                throw new ArgumentNullException(nameof(assemblys));
            }

            var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assemblys, name);

            return(RegisterCollection(dependencyRegister, enumerableConfiguration));
        }
Example #6
0
        /// <summary>
        ///     注册类型和返回实现实例的委托为依赖服务
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public static ILifetimeRegistration <ILifetimeRegistration> RegisterDelegate <TImplementation>(
            this IDependencyRegister dependencyRegister, Type serviceType,
            Func <IDependencyResolver, TImplementation> implementationDelegate)
            where TImplementation : class
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }
            if (implementationDelegate == null)
            {
                throw new ArgumentNullException(nameof(implementationDelegate));
            }

            var registerConfiguration = DependencyRegistrationFactory.ForDelegate(serviceType, implementationDelegate);

            return((DependencyRegistration)RegisterRegistration(dependencyRegister, registerConfiguration));
        }