介绍

系统针对客户端程序定义了系统配置接口

  1. using System;
  2. namespace XCI.Config
  3. {
  4. /// <summary>
  5. /// 系统配置接口
  6. /// </summary>
  7. public interface IConfigProvider
  8. {
  9. /// <summary>
  10. /// 加载配置
  11. /// </summary>
  12. void Load();
  13. /// <summary>
  14. /// 保存配置
  15. /// </summary>
  16. void Save();
  17. /// <summary>
  18. /// 获取指定名称的配置对象
  19. /// </summary>
  20. /// <typeparam name="T">配置类型</typeparam>
  21. /// <param name="key">配置名称</param>
  22. /// <param name="defaultValue">如果未找到指定名称的配置对象时,返回此默认值</param>
  23. /// <returns>返回指定名称的配置对象</returns>
  24. T Get<T>(string key, Func<T> defaultValue = null) where T : class;
  25. /// <summary>
  26. /// 设置指定名称的配置对象
  27. /// </summary>
  28. /// <typeparam name="T">配置类型</typeparam>
  29. /// <param name="key">配置名称</param>
  30. /// <param name="value">配置对象</param>
  31. void Set<T>(string key, T value) where T : class;
  32. /// <summary>
  33. /// 读取应用程序配置
  34. /// </summary>
  35. /// <param name="key">键名</param>
  36. /// <param name="defaultValue">如果找不到,返回的默认值</param>
  37. /// <returns>返回key对应的值,如果找不到key则返回指定的默认值</returns>
  38. string GetAppSettings(string key, string defaultValue = "");
  39. /// <summary>
  40. /// 设置应用程序配置
  41. /// </summary>
  42. /// <param name="key">键名</param>
  43. /// <param name="value">键值</param>
  44. void SetAppSettings(string key, string value);
  45. }
  46. }

系统默认配置文件实现是JsonConfigProvider,实现了上面的接口,默认文件路径是项目输出目录下的app.json,配置文件的格式为Json。

重新加载默认配置

  1. ConfigFactory.Default.Load();

获取默认配置中指定名称的配置对象

  1. //获取默认配置文件中名称为WinForm的节点对应的配置对象
  2. //如果WinForm节点为空,或者配置无效,则返回一个新建的默认配置
  3. var setting = ConfigFactory.Default.Get("WinForm", () => new WinFormSetting());

保存默认配置

所有的Set操作之后,都必须要调用下面的方法,配置才会保存到配置文件,否则重启系统后配置丢失。

  1. ConfigFactory.Default.Save();

获取或者设置默认配置中的键值对

  1. //配置文件中节点名称是:AppSettings
  2. //获取配置文件中键名为key的值,如果没有找到或者keyd值为空,则使用默认值0000
  3. ConfigFactory.Default.GetAppSettings("key","000");
  4. //设置配置文件中键名为key的值,设置完成后请调用Save方法
  5. ConfigFactory.Default.SetAppSettings("key","123");

独立配置文件读写

在项目的开发过程中,根据业务需要,编写独立的配置文件,系统已实现的配置文件对象为JsonConfigFile,此类为泛型类

示例:需要把一部分静态数据保存到本地配置文件中,同时实现对配置文件读写。

1. 新建Model

  1. /// <summary>
  2. /// 银行模型
  3. /// </summary>
  4. public class BankModel
  5. {
  6. /// <summary>
  7. /// 银行名称
  8. /// </summary>
  9. public string Name { get; set; }
  10. /// <summary>
  11. /// 银行简称
  12. /// </summary>
  13. public string ShortName { get; set; }
  14. /// <summary>
  15. /// 银行类型
  16. /// </summary>
  17. public string Category { get; set; }
  18. }

2. 创建读取类

  1. //创建配置读写类,指定的配置文件路径为输出目录下的bank.json
  2. JsonConfigFile<List<BankModel>> bankConfigProvider =
  3. new JsonConfigFile<List<BankModel>>(IOHelper.GetOutFilePath("bank.json"));
  4. //Data属性是配置文件中的数据对象
  5. var data = bankConfigProvider.Data;
  6. //有修改数据直接操作Data属性,操作完成后调用Save方法,完成后数据会保存到指定的配置文件中
  7. bankConfigProvider.Save();