2.ABP配置

2383 ワード

一、概説
プログラムが起動する前に、モジュールのPreInitializeメソッドでいくつかの構成を行うことができます.2つに分けられます.1つ目は、フレームワークの自己構成です.2つ目は、カスタム構成です.
二、使用
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.2 ABPモジュールカスタム構成
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);
            } 
        }