在开发一个.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>
6条答案
按热度按时间vulvrdjw1#
基本的
<appSettings>
更容易处理--只需输入一个<add key="...." value="..." />
条目就可以了。缺点是:没有类型检查,例如,您不能安全地假设您要配置的数字确实存在-有人可能会将字符串放入该设置中.....您只需以
ConfigurationManager["(key)"]
的形式访问它,然后由您来了解您正在处理的内容。此外,随着时间的推移,如果你的应用程序的很多部分开始在那里放东西,
<appSettings>
可能会变得相当复杂和混乱(还记得旧的windows.ini文件吗?:-))。如果可以的话,我建议您使用自己的配置部分-使用.NET 2.0,这真的变得非常容易,这样,您就可以:
有一系列非常好的文章介绍如何在CodeProject上揭开.NET 2.0配置系统的神秘面纱:
强烈推荐!Jon Rista在解释.NET 2. 0中的配置系统方面做得很好。
lx0bsm1f2#
应用程序设置可以从设计器中控制(默认情况下通常有一个Settings.settings文件),因此更易于修改,并且可以通过Settings类以编程方式访问这些设置,在Settings类中,这些设置看起来像强类型属性。您还可以具有应用程序和用户级别设置,以及用于回滚的默认设置。
这是从.NET 2.0开始提供的,并反对其他的方法(据我所知)。
详情请参阅:msdn.microsoft.com/en-us/library/k4s6c3a0.aspx
ttcibm8c3#
要了解
app.config
中设置的优点和缺点,我建议您查看两者的技术细节。我提供了一些链接,您可以在其中找到处理的源代码,下面描述了更多的技术细节。让我简要总结一下我在使用它们时所认识到的东西(**注意:**同样适用于网站/ Web应用程序的
web.config
文件):**一个
优点
serializeAs
属性)缺点
**第一个e第一个f第一个x
更新:AppSettings in .NET Core
优点
Internet信息服务(IIS)管理器
(功能视图-〉应用程序设置,请注意图标的名称会引起误解,因为它只能处理AppSettings而不能处理ApplicationSettings)
缺点
5jdjgkvh4#
我一直在使用一个模式,我发现了一段时间回来,你使用基本的xml标签,但 Package 在一个静态配置类的设置。所以-一个DIY的App. Settings。
DotNetPearls Static Config Pattern
如果这样做,您可以:
它的设置很繁琐,但是运行良好,隐藏了对键名的引用,并且是强类型的,这种模式对于应用程序不更改的配置很有效,尽管你也可以支持更改。
配置:
配置类:
qcbq4gxm5#
我喜欢使用更简单的版本来存储和访问单个值。
我写了一个实用程序类,以允许默认值的类型安全方式访问值。如果没有提供默认值,则会给出有用的异常消息。
您可以在此处查看/下载该课程:
http://www.drewnoakes.com/code/util/app-settings-util/
yqhsw0fo6#
使用ApplicationSettings的一大好处是,应用程序可以通过ClickOnce部署,如this page中所述。
基本上,如果设置的类型为“用户”,并且已修改了其默认值,则它将在每次更新时保持修改状态。如果设置的类型为“应用程序”,则在更新应用程序时将自动覆盖它。
另外,在VB.NET中,ApplicationSettings可以通过简单地使用My.Settings.来访问,这使得它成为从GUI的Angular 来看最简单的可用设置配置。