在开发.NET Windows窗体应用程序时,我们可以在这些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,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 =“...”/>进入,你就完成了。
缺点是:没有类型检查,例如你不能安全地假设你想要配置的号码确实有一个号码 – 有人可以在该设置中输入一个字符串…..你只需将它作为ConfigurationManager [“(键)”]访问它然后由你决定知道你在做什么。
此外,随着时间的推移,< appSettings>如果您的应用程序的很多部分开始放入那里(记住旧的windows.ini文件?:-)),可能会变得相当复杂和混乱。
如果可以,我宁愿并建议使用您自己的配置部分 – 使用.NET 2.0,它真的变得非常简单,这样,您可以:
> a)在代码中定义配置设置并使其具有类型安全性
并检查
> b)您可以干净地将您的设置与所有人分开
别人的。您也可以重用您的配置代码!
有一系列非常好的文章可以揭开CodeProject上的.NET 2.0配置系统的神秘面纱:
> Unraveling the mysteries of .NET 2.0 configuration
> Decoding the mysteries of .NET 2.0 configuration
> Cracking the mysteries of .NET 2.0 configuration
强烈推荐! Jon Rista在.NET 2.0中解释配置系统方面表现出色。