在开发 .NET Windows 窗体应用程序时,我们可以在这些App.config标签之间进行选择来存储我们的配置值。哪一个更好?
App.config
<configuration> <!-- Choice 1 --> <appSettings> <add key="RequestTimeoutInMilliseconds" value="10000"/> </appSettings> <!-- Choice 2 --> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" > <section name="Project1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" requirePermission="false" /> </sectionGroup> </configSections> <applicationSettings> <Project1.Properties.Settings> <setting name="TABLEA" serializeAs="String"> <value>TABLEA</value> </setting> </Project1.Properties.Settings> </applicationSettings> </configuration>
基本<appSettings>的更容易处理 - 只需输入一个<add key="...." value="..." />条目,你就完成了。
<appSettings>
<add key="...." value="..." />
缺点是:没有类型检查,例如,您不能安全地假设您想要配置的号码确实是一个数字 - 有人可以在该设置中放入一个字符串.....您只需访问它ConfigurationManager["(key)"],然后它就可以了让你知道你在处理什么。
ConfigurationManager["(key)"]
此外,随着时间的推移,<appSettings>如果您的应用程序的许多部分开始在其中放入东西(还记得旧的 windows.ini 文件吗?:-)),它会变得相当复杂和混乱。
如果可以,我更喜欢并推荐使用您自己的配置部分 - 使用 .NET 2.0,它真的变得非常简单,这样,您可以:
在 CodeProject 上有一系列非常好的文章来揭开 .NET 2.0 配置系统的神秘面纱:
揭开 .NET 2.0 配置的奥秘
解读 .NET 2.0 配置的奥秘
破解 .NET 2.0 配置的奥秘
强烈推荐!Jon Rista 很好地解释了 .NET 2.0 中的配置系统。