微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AppSettings与applicationSettings的优缺点(.NET app.config/Web.config)

在开发.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中解释配置系统方面表现出色。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐