小编典典

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

all

在开发 .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, 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>

阅读 64

收藏
2022-08-27

共1个答案

小编典典

基本<appSettings>的更容易处理 - 只需输入一个<add key="...." value="..." />条目,你就完成了。

缺点是:没有类型检查,例如,您不能安全地假设您想要配置的号码确实是一个数字 -
有人可以在该设置中放入一个字符串.....您只需访问它ConfigurationManager["(key)"],然后它就可以了让你知道你在处理什么。

此外,随着时间的推移,<appSettings>如果您的应用程序的许多部分开始在其中放入东西(还记得旧的 windows.ini
文件吗?:-)),它会变得相当复杂和混乱。

如果可以,我更喜欢并推荐使用您自己的配置部分 - 使用 .NET 2.0,它真的变得非常简单,这样,您可以:

  • a)在代码中定义您的配置设置,并使其类型安全并检查
  • b) 您可以将 的设置与其他人的设置完全分开。你也可以重用你的配置代码!

在 CodeProject 上有一系列非常好的文章来揭开 .NET 2.0 配置系统的神秘面纱:

  1. 揭开 .NET 2.0 配置的奥秘

  2. 解读 .NET 2.0 配置的奥秘

  3. 破解 .NET 2.0 配置的奥秘

强烈推荐!Jon Rista 很好地解释了 .NET 2.0 中的配置系统。

2022-08-27