凡是涉及到调用外部接口的,做成可配置
比如经常会用到调用开放平台接口的情况,可以把开放平台的地址放在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);
});