鼎鼎知识库
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

办公楼版后端处理.md 2.3KB

凡是涉及到调用外部接口的,做成可配置

比如经常会用到调用开放平台接口的情况,可以把开放平台的地址放在appsettings.json中。

比如,需要在appsettings.json中加一个APP的节点。

{
  ......
  "App": {
    "rate": "5", // 模块上传频率,大于5秒
    "shixugo": "0", // 是否开通时序
    "istest": "0", // 是否测试,会记录测试日志,比较细
    "testmac": "", // 当前测试模块号,当istest=1时使用,多个模块逗号分隔
    "isvalidmac": "0", // 是否验证模块内容
    "isdealdl": "0", //是否处理电量
    "isudptest": "1" //是否启用查看来自模块的UDP指令
  },
  ......
}

需要一个类来描述配置节点。

    public class App
    {
        /// <summary>
        /// 模块上传频率,大于5秒
        /// </summary>
        public string rate { get; set; }

        /// <summary>
        /// 是否开通时序
        /// 1开通0没有开通
        /// </summary>
        public string shixugo { get; set; }

        /// <summary>
        /// 是否测试,会记录测试日志,比较细
        /// 1测试0不测试
        /// </summary>
        public string istest { get; set; }

        /// <summary>
        /// 当前测试模块号,当istest=1时使用,多个模块以逗号分隔
        /// </summary>
        public string testmac { get; set; }

        /// <summary>
        /// 是否验证模块内容
        /// 1为验证0不验证
        /// </summary>
        public string isvalidmac { get; set; }



        /// <summary>
        /// 是否处理电量
        /// 1测试0不测试
        /// </summary>
        public string isdealdl { get; set; }

        /// <summary>
        /// 是否打印从设备来的指令,1是,0不是
        /// </summary>
        public string isudptest { get; set; }

    }

以上,App类中的属性与appsettings.json中的key保存一致。

最后在Startup.cs中配置:

            var app1 = new App();//应用程序帮助类
            configuration.GetSection("App").Bind(app1);
            services.AddSingleton(app1);
            ChangeToken.OnChange(() => configuration.GetReloadToken(), () =>
            {
                configuration.GetSection("App").Bind(app1);
            });