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#基础就能看懂了,要说明的是两点:

  1. 如果配置文件存在程序运行时候自动加载文件,否则会创建一个配置文件,并且将默认值写入文件。
  2. 程序内部可以热修改配置,根据设置的时间自动同步数据。

运行程序

需要注意的是每一个配置文件都有一个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....

posted @ 2019-11-19 19:03  牧轩居士  阅读(683)  评论(0编辑  收藏  举报