为什么使用app.config存储配置数据?

Tre*_*reb 17 c# settings configuration

我目前正在完成由其他人启动的应用程序.他正在使用app.config进行某些设置,并使用自定义xml文件进行其他部分.这让我疯狂,我想将配置合并到一个文件中.

但我不确定是否将所有内容都移到app.config中并抛出自定义xml文件,或者将所有内容移动到另一个文件中并忘记app.config.

我可以看到两个参数,每个选项一个:

  1. 使用Visual Studio提供的标准方法比其他人更容易维护.
  2. 我可以根据自己的xml架构验证自定义文件,因此如果配置文件包含所有必需的数据等,则会外包大量测试.

但我确信现在还有很多东西比我想象的要多.这就是我要问的原因:

使用app.config存储配置与"传统"配置文件有什么优缺点?

mar*_*c_s 29

使用app.config的主要好处是它是.NET应用程序存储其配置的默认支持方式.任何人使用该应用程序或有一天从您继承它将感谢您使用既定标准而不是"滚动自己".

此外,.NET框架支持使用,编写,创建,修改app.config文件 - 如果您使用自己的方案,则必须多次重新发明轮子.

所以,我肯定会推荐使用的app.config -这是THE做在.NET配置和广泛的接受和支持良好的标准方法.

  • 您还可以轻松加密app.config的各个部分. (7认同)

Mat*_*ush 8

如果项目的生命周期使其从一个环境移动到另一个环境,则将配置拆分为不同的文件非常有用.

例如,当开发人员处理代码时,您可能希望应用程序指向"devsql"框.当需要进行QA时,代码会被部署到登台服务器,并且您希望应用程序指向'stagingsql'.

如果你在app.config中保留所有配置,并且已经对app.config的开发版本进行了设置更改,它将被复制,并破坏暂存版本 - 现在你的QA人员指向开发人员数据库.

通过将'database.xml'与'app.config'分开,您可以允许各种环境之间的差异,但仍允许更改配置文件从每个环境流向下一个环境,而不必担心覆盖自定义.


Tho*_*que 5

恕我直言app.config不是一种非常方便的存储配置数据的方式,主要是出于以下两个原因:

  • 您无法控制文件的位置
  • 您无法定义自己的结构来组织配置设置

我更喜欢使用自己的配置类,我使用XML序列化加载和保存.您仍然可以获得强类型设置的好处,并且它更加灵活,因为您可以定义所需的任何结构

  • 您可以创建自己的配置类.你是什​​么意思你不能定义自己的结构?顺便说一句,无法控制位置是一件好事.这意味着它只在一个地方,你不必去寻找它. (4认同)