2.ABP配置

作者: 落地成佛 | 来源:发表于2017-08-25 12:35 被阅读42次

    一、概述

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

    二、使用

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

     public class Learn_ABPDataModule : AbpModule
        {
            public override void PreInitialize()
            {
                //配置数据库生成方式
                Database.SetInitializer(new CreateDatabaseIfNotExists<Learn_ABPDbContext>());
                //配置数据库连接字符串
                Configuration.DefaultNameOrConnectionString = "Default";
                //配置导航
                Configuration.Navigation.Providers.Add<Learn_ABPNavigationProvider>();
                 //配置是否多租户
                Configuration.MultiTenancy.IsEnabled = false;
                //替换内置服务
                Configuration.ReplaceService<IAbpSession,MySession>(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<MyModuleConfig>();
    

    2.2.2 扩展IModuleConfigurations 如下:

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

    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配置

        本文链接:https://www.haomeiwen.com/subject/orsudxtx.html