一、概述
在程序启动前,可以在模块的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);
}
}