VIT*_*MAN 6 registry environment-variables configuration-files command-line-arguments
所以这是一个有趣的小事情,我之前 Stack Overflow 没有讨论过。不是真正的生死问题,而是我想听听您的意见。
简而言之:我的程序在这方面有点过度设计:它从四个不同的地方获取配置选项:
问题是,应该以什么顺序评估这些?我认为很明显命令行选项有最后的发言权,但其他三个呢?如果在环境和 ini 文件中设置了相同的选项,哪个应该优先?
注册表怎么样,假设我使用它来更改程序的运行时设置,注册表是否会覆盖 ini,我是否应该将应用于注册表的更改也重写到配置文件中?我应该设置它以便注册表设置不能覆盖从环境中读取的设置吗?
(如果你想知道这到底是怎么可能的,一个词:X-macro。)
小智 9
按优先级排序,我会这样: cli > envvars > registry > config > defaults
cli:它需要您在手动启动程序时肯定要使用的选项envvar:通常用于在运行时手动覆盖配置文件选项(今天也经常用于管理容器环境中的配置选项,参见 12factor app)registry: 特定于 Microsoft Windows 世界,但根据您所说的,它与环境变量的目的几乎相同config:在安装/配置时定义,因此这些是“用户想要的默认选项”defaults:当没有提供其他任何东西时,安全运行的最小配置(例如仅在本地主机上侦听)| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |