在“config.cfg”等文本文件中存储程序设置的逻辑如何?

我常常看到一些软件,特别是在文本文件中存储设置的游戏。 我想在我的C#WinForms应用程序中也有相同的东西(我知道可以用于用户和软件方面的应用程序设置)因为我认为最终用户更容易处理它。

所以我需要知道的是如何读取这些设置文件,例如设置类的字段。

想象一下,我有一个具有以下字段的类:

private double vOffset = 0; private bool Refresh = false; 

这将是我的文本文件(假设文件名为“config.cfg”):

 ;This is a comment Voltage Offset = 0.08 ;Refresh Enable = 1 | Disable = 0 Refresh = 1 

想听听你的想法,也许还有一些代码可能! 用于读取此文件和更新类字段,以及如何从软件中保存或更新此列表。

谢谢。

你可以使用标准的.NET设置类吗?

好处:
– 您不需要为此编码
– 您可以使用UI来编辑默认设置
– 您以类型化的方式引用代码中的Settings.Default.Test1 ,例如Settings.Default.Test1
– 您的设置将存储在XML格式的应用程序配置文件中。

更多细节: http : //msdn.microsoft.com/en-us/library/k4s6c3a0.aspx 。

设置

在配置文件中,它看起来像这样:

   My string setting  

您可能会争辩说,最终用户不容易阅读XML。 但我相信那些了解“电压偏移”是什么的用户,不应该在xml文件中读取/更新设置有问题:)。

实际上,在.net环境中执行此操作的最简单方法是使用xml设置文件。 使用xmlserializer可以将对象序列化为文本并从文本中取消实现。

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

编辑:xmlserializer也不会序列化私有字段/属性,因此您应该使用公共属性来获得所需的结果。

该设置通常以常见格式之一存储,例如XML(现在非常常见),INI(以前是常见的),LAU,……

将对象序列化为这些格式或从中反序列化可以使用内置的序列化程序(例如.NET中的XmlSerializer),第三方的甚至是自定义的序列化程序来完成。