Newlifex修仙(一) 超级配置文件
新生命团队基础框架X组件,包括日志、数据库、网络、RPC、序列化、缓存、Windows服务、多线程等模块,支持.Net Framework/.netstandard/Mono。
说道配置文件,大家觉得太平凡和普通了,有人说有App.Config
本来就可以用,何必造轮子玩耍,只能回答你一句,骚年,你太年轻了!🤣🤣🤣🤣🤣🤣 还有很多系统的配置可能需要及时生效(在不需要重新启动的情况下),以及程序中使用的简单,灵活性,也是一个重点。自从用了Newlifex.Core
只觉得“六宫粉黛无颜色”,今天就来忽悠一波Newlife.Core
中的超级配置文件XmlConfig
。
Newlifex超级配置优势
1.开发过程中建立一个配置文件非常方便。集成,加属性,加默认值,如果有其他逻辑,补充一下。
2.使用极其方便,通过XXX类名.Current.属性名 就可以直接对配置项进行读写。
3.修改及时生效,可以设置生效时间,这样很多情况下,程序不用重启配置就能及时生效。
4.程序启动如果发现没有该配置项目,会自动新建默认配置文件。与XCode的反向工程异曲同工。
5.支持列表,字典等复杂数据结构。
6.代码注释和XML文件的注释匹配。
Nuget下载
首先进入Nuget
,在Nuget
里面搜索Newlife
,选择Newlife.Core
安装即可。
创建模板
在配置组建中,最重要的一个就是需要预先定义一个实体类,可以通过反射机制自动将Xml配置注入到实体类中,下面是一个配置文件,可能对你没有实际意义。
[Description("Hook配置")]
[XmlConfigFile("Config/others/hook.config", 3000)]
public class GithubSettings : XmlConfig<Settings>
{
/// <summary>仓库地址</summary>
[Description("仓库地址")]
public string Resp { get; set; } = "";
/// <summary>克隆分支</summary>
[Description("分支")]
public string Branch { get; set; } = "master";
/// <summary>克隆位置</summary>
[Description("克隆位置")]
public string CloneTo { get; set; } = "";
}
僵硬的解释一波,其中XmlConfigFile
是配置文件属性注入,第一个参数是保存的配置文件地址,第二个是重新加载间隔(几道为啥可以热更新了吧😂😂😂😂),后面的代码基本没啥说的,只要有C#基础就能看懂了,要说明的是两点:
- 如果配置文件存在程序运行时候自动加载文件,否则会创建一个配置文件,并且将默认值写入文件。
- 程序内部可以热修改配置,根据设置的时间自动同步数据。
运行程序
需要注意的是每一个配置文件都有一个Current的实例,可以通过该实例取出当前的配置信息。
public static void Main(string[] args)
{
GithubSettings.Current.Resp = "https://github.com/corsip/corsip.github.io";
Console.WriteLine(GithubSettings.Current.Resp);
GithubSettings.Current.Save();
}
查看文件
广告
Newlifex 组建还有其他各种🐂🍺的功能需要等待发掘,尤其是网络库、Xcode更是非常棒的开源库,但是笔者暂时用不到这个模块,So....