예제 #1
0
        /// <summary>
        /// 初始化IOC
        /// </summary>
        public static void RegisterIoc(IocType iocType = IocType.Autofac)
        {
            if (_autoFacServicesCollection == null
#if NETSTANDARD
                && _diServicesCollection == null
#endif
                )
            {
                IocLoader.iocType = iocType;
                if (iocType == IocType.Autofac)
                {
                    _autoFacServicesCollection = new ContainerBuilder();
                    _autoFacServicesCollection.RegisterModule(new Loader.AutofacModule());
                }
#if NETSTANDARD
                else if (iocType == IocType.DependencyInjection)
                {
                    _diServicesCollection = DiServices.UseDependencyInjection();
                }
#endif
                else
                {
                    throw new ArgumentOutOfRangeException("IocType 参数类型不正确!");
                }
            }
            else
            {
                throw new Exception("不能重复调用!");
            }
        }
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="dependencyConfigModule">依赖注入配置模块</param>
        /// <param name="type">Ioc类型</param>
        /// <param name="kernel">Ninject的kernel</param>
        public static void Initialize(object dependencyConfigModule, IocType type = IocType.Ninject, object kernel = null)
        {
            if (type == IocType.Ninject)
            {
                dependencyResolver = new NinjectDependencyResolver(dependencyConfigModule, kernel);
            }

            if (type == IocType.Autofac)
            {
                dependencyResolver = new AutofacDependencyResolver(dependencyConfigModule, kernel);
            }
        }
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="dependencyConfigModuleAssemblyStrings">依赖注入配置模块程序集</param>
        /// <param name="type">Ioc类型</param>
        /// <param name="dependencyConfigModuleNameSpaceStrings">依赖注入配置模块程序集命名空间</param>
        public static void Initialize(IEnumerable <string> dependencyConfigModuleAssemblyStrings, IocType type = IocType.Ninject, IEnumerable <string> dependencyConfigModuleNameSpaceStrings = null)
        {
            if (type == IocType.Ninject)
            {
                dependencyResolver = new NinjectDependencyResolver(dependencyConfigModuleAssemblyStrings, dependencyConfigModuleNameSpaceStrings);
            }

            if (type == IocType.Autofac)
            {
                dependencyResolver = new AutofacDependencyResolver(dependencyConfigModuleAssemblyStrings, dependencyConfigModuleNameSpaceStrings);
            }
        }