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