小编VIT*_*MAN的帖子

配置选项的优先级:环境、注册表、配置文件和命令行按什么顺序?

所以这是一个有趣的小事情,我之前 Stack Overflow 没有讨论过。不是真正的生死问题,而是我想听听您的意见。

简而言之:我的程序在这方面有点过度设计:它从四个不同的地方获取配置选项:

  • 命令行参数
  • 配置文件
  • 环境变量
  • Windows 注册表
  • (和硬编码的默认值)

问题是,应该以什么顺序评估这些?我认为很明显命令行选项有最后的发言权,但其他三个呢?如果在环境和 ini 文件中设置了相同的选项,哪个应该优先?

注册表怎么样,假设我使用它来更改程序的运行时设置,注册表是否会覆盖 ini,我是否应该将应用于注册表的更改也重写到配置文件中?我应该设置它以便注册表设置不能覆盖从环境中读取的设置吗?

(如果你想知道这到底是怎么可能的,一个词:X-macro。)

registry environment-variables configuration-files command-line-arguments

6
推荐指数
1
解决办法
1118
查看次数