鼎鼎知识库
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. > 凡是涉及到调用外部接口的,做成可配置
  2. 比如经常会用到调用开放平台接口的情况,可以把开放平台的地址放在`appsettings.json`中。
  3. 比如,需要在`appsettings.json`中加一个`APP`的节点。
  4. ```
  5. {
  6. ......
  7. "App": {
  8. "rate": "5", // 模块上传频率,大于5秒
  9. "shixugo": "0", // 是否开通时序
  10. "istest": "0", // 是否测试,会记录测试日志,比较细
  11. "testmac": "", // 当前测试模块号,当istest=1时使用,多个模块逗号分隔
  12. "isvalidmac": "0", // 是否验证模块内容
  13. "isdealdl": "0", //是否处理电量
  14. "isudptest": "1" //是否启用查看来自模块的UDP指令
  15. },
  16. ......
  17. }
  18. ```
  19. 需要一个类来描述配置节点。
  20. ```
  21. public class App
  22. {
  23. /// <summary>
  24. /// 模块上传频率,大于5秒
  25. /// </summary>
  26. public string rate { get; set; }
  27. /// <summary>
  28. /// 是否开通时序
  29. /// 1开通0没有开通
  30. /// </summary>
  31. public string shixugo { get; set; }
  32. /// <summary>
  33. /// 是否测试,会记录测试日志,比较细
  34. /// 1测试0不测试
  35. /// </summary>
  36. public string istest { get; set; }
  37. /// <summary>
  38. /// 当前测试模块号,当istest=1时使用,多个模块以逗号分隔
  39. /// </summary>
  40. public string testmac { get; set; }
  41. /// <summary>
  42. /// 是否验证模块内容
  43. /// 1为验证0不验证
  44. /// </summary>
  45. public string isvalidmac { get; set; }
  46. /// <summary>
  47. /// 是否处理电量
  48. /// 1测试0不测试
  49. /// </summary>
  50. public string isdealdl { get; set; }
  51. /// <summary>
  52. /// 是否打印从设备来的指令,1是,0不是
  53. /// </summary>
  54. public string isudptest { get; set; }
  55. }
  56. ```
  57. 以上,`App`类中的属性与`appsettings.json`中的`key`保存一致。
  58. 最后在`Startup.cs`中配置:
  59. ```
  60. var app1 = new App();//应用程序帮助类
  61. configuration.GetSection("App").Bind(app1);
  62. services.AddSingleton(app1);
  63. ChangeToken.OnChange(() => configuration.GetReloadToken(), () =>
  64. {
  65. configuration.GetSection("App").Bind(app1);
  66. });
  67. ```