2.ABP配置

一、概述

在程序启动前,可以在模块的PreInitialize方法中进行些配置。分两种:
第一种:框架自带配置
第二种: 自定义配置

二、使用

2.1 ABP框架自带配置 方法如下:

 public class Learn_ABPDataModule : AbpModule
    {
        public override void PreInitialize()
        {
            //配置数据库生成方式
            Database.SetInitializer(new CreateDatabaseIfNotExists());
            //配置数据库连接字符串
            Configuration.DefaultNameOrConnectionString = "Default";
            //配置导航
            Configuration.Navigation.Providers.Add();
             //配置是否多租户
            Configuration.MultiTenancy.IsEnabled = false;
            //替换内置服务
            Configuration.ReplaceService(DependencyLifeStyle.Transient);
            //.......
        }
    }

2.2ABP模块自定义配置

2.2.1 新建一个配置类 如下:

    public class MyModuleConfig
    {
        public bool SampleConfig1  { get; set; }
        public string SampleConfig2 { get; set; }
    }

2.2.2 在模块的PreInitialize方法中注册该类 如下:

 IocManager.Register();

2.2.2 扩展IModuleConfigurations 如下:

public static class MyModuleConfigurationExtensions
    {
        public static MyModuleConfig MyModule(this IModuleConfigurations moduleConfigurations)
        {
            return moduleConfigurations.AbpConfiguration.GetOrCreate("MyModuleConfig",
                () => moduleConfigurations.AbpConfiguration.IocManager.Resolve());
        }
    }

2.2.3 现在就可以在模块中配置了 如下:

public override void PreInitialize()
        {
            Configuration.Modules.MyModule().SampleConfig2 = "abc";
        }

2.2.4 演示调用配置 如下:

        private readonly MyModuleConfig _configuration;
        public TasksController(MyModuleConfig configuration)
        {
            _configuration = configuration;
        }
        public ActionResult Index()
        {
            if (_configuration.SampleConfig2 == "abc")
            {
               var data = _taskAppService.GetAllTasks();
                return View(data);
            } 
        }

你可能感兴趣的:(2.ABP配置)