代码拉取完成,页面将自动刷新
在应用启动之前,ump框架提供了模块基本的配置和方法,大家参照下面这个例子就可以了。
配置是通过在自己模块的PreInitialize方法中来实现的(对于module的PreInitialize方法,在上一篇中已经向大家做了简单的说明)代码示例如下:
public class SimpleTaskSystemModule : UmpModule
{
public override void PreInitialize()
{
//设置系统路径
Configuration.StartupPath = Application.StartupPath;//设置系统工作目录
Configuration.ConfigPath = System.IO.Directory.GetDirectoryRoot(Application.StartupPath);//设置系统配置存放目录
Configuration.Name = "UmpTestFreeSqlMudule";//设置系统名称
}
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
和.net框架原生的启动配置相比较,ump有哪些不一样呢?ump框架的模块可以通过IUmpModuleConfigurations接口进行个性化的扩展,这样的话,模块配置更加简单、方便。
示例代码如下:
...
using XiaoYou.Ump.FreeSql.Configuration;
...
public override void PreInitialize()
{
//设置FreeSql 模块信息
Configuration.Modules.UmpFreeSql().AutoSyncStructure = true;
Configuration.Modules.UmpFreeSql().ConnectionString = $@"Data Source={Configuration.ConfigPath}\database.db;Pooling=true;Max Pool Size=10";
Configuration.Modules.UmpFreeSql().DataType = DataType.Sqlite;
}
...
在上面这个例子中,我们通过配置XiaoYou.Ump.FreeSql模块,开启了FreeSql 自动同步数据结构的功能,设置了FreeSql 的连接字符串,确定了FreeSql使用的数据库类型是 Sqlite。
如下代码,假如我们有一个命名为MyModule的模块,并且这各模块有一些自己的配置。那么我们首先要创建一些类,这些类定义为属性,代表了不同的配置。
public interface IMyModuleConfig
{
bool SampleConfig1 {get;set}
string SampleConfig2 {get;set;}
}
public class MyModuleConfig:IMyModuleConfig
{
public bool SampleConfig1 { get; set; }
public string SampleConfig2 { get; set; }
}
接下来,我们通过依赖注入,注册这个类。IocManager.Register();
public class MyMudule : UmpModule
{
public override void PreInitialize()
{
IocManager.Register<IMyModuleConfig,MyModuleConfig>();
}
}
最后,我们通过创建一个扩展的方法IModuleConfigurations来得到配置的引用。如下代码:
public static class MyConfigurationExtensions
{
public static IMyModuleConfig MyModule(this IModuleConfigurations moduleConfigurations)
{
return moduleConfigurations.UmpConfiguration.Get<IMyModuleConfig>();
}
}
现在,在其他模块中也可以配置我们自定义的这个MyModule模块了。
Configuration.Modules.MyModule().SampleConfig1 = false;
Configuration.Modules.MyModule().SampleConfig2 = "test";
如果其它地方需要MyModule的配置,我们可以通过注入IMyModuleConfig 来使用这些值
public class MyService : ITransientDependency
{
private readonly MyModuleConfig _configuration;
public MyService(MyModuleConfig configuration)
{
_configuration = configuration;
}
public void DoIt()
{
if (_configuration.SampleConfig2 == "test")
{
//...
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。