App.config与.ini文件

时间:2010-03-19 08:15:43

标签: c# .net configuration

我正在审核一个.NET项目,我遇到了一些非常重要的.ini文件用于配置。我更喜欢使用app.config文件,但在我跳转并用开发人员解决这个问题之前,我想知道是否有任何有效理由支持app.config上的.ini文件?

4 个答案:

答案 0 :(得分:6)

嗯,平均而言,.INI文件可能更紧凑,并且对人类来说更具可读性。 XML阅读起来有点痛苦,而且非常冗长。

然而,app.config当然是.NET支持的标准.NET配置机制,并且有很多钩子和方法。如果你使用.INI文件,你基本上就是“一路滚动”。 “重新发明轮子”的典型案例。

然后再说一次:这是一个在.NET之前开始生命的项目吗?或者是现有的.NET前Windows应用程序的端口,其中.INI文件是什么方式?

我认为.INI文件没有任何本质上的错误 - 它们只是不再支持.NET了,你可以自己扩展它们,处理它们等等。如果它是一个“笨蛋”,如果你需要提供外部帮助 - 几乎没有任何.NET开发人员会接触到.INI文件,而.NET配置系统是相当广为人知和理解的。

答案 1 :(得分:3)

Ini文件在我的书中非常好。问题是GetPrivateProfileString()和表兄弟。 Appcompat已经把它变成了API函数的一个丑陋的笨蛋。检索单个ini值大约需要50毫秒,这是现代PC上的大量时间。

但最大的问题是你无法控制INI文件的编码。 Windows将始终使用系统代码页来解释字符串。只要您的程序远离办公桌,这是唯一的。如果是这样,当您不将INI文件中使用的字符集限制为ASCII时,它会产生严重的乱码风险。

XML没有这个问题,.NET框架很好地支持它。无论是使用设置还是自己管理配置。

答案 2 :(得分:1)

就个人而言,我从不将.ini / xml配置文件用于将所有值加载到单个或类似的东西中,然后像这样使用它们运行...

据说我坚信你应该看一下数据的类型和数据的使用。如果数据在设置和配置方面位于应用程序的上下文中,那么我相信app.config文件是保存这些设置的正确位置。

另一方面,如果数据涉及加载与应用程序内容有关的项目,图像或其他资源,那么我相信.ini(是否有人使用.ini文件?我在考虑.xml文件存储这些信息)。简而言之:根据域和上下文细分存储数据的内容。

答案 3 :(得分:0)

INI 文件更适用于多平台应用程序(例如,Linux 和 Windows),在这些应用程序中,客户可能偶尔会直接编辑配置参数,并且您希望无需额外工作即可获得更用户友好/更易识别的文件名。