使用<appSettings>元素定义配置参数

本文介绍了一种通过应用程序配置文件&lt;appSettings&gt;元素来保存配置值的方法,并以MyInt参数为例,演示了如何在代码中读取、修改并保存这些配置值。同时也讨论了该方法存在的两个主要缺点。

可以使用应用程序配置文件中的<appSettings>元素保存专门用于应用程序的配置值。例如:

假设Myapp应用程序有一个名为MyInt参数:

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration

       xmls=http://schemas.microsoft.com/.netConfiguration/v2.0>

      <appSettings>

              <add key="MyInt" value="1234"/>

     </appSettings>

</configuration>

下面是MyApp应用程序的代码。在每次执行的时候,代码都会取出MyInt参数的值再乘以10,然后保存新值。

 

Myapp。cs

using System.Configuration;

class Program{

    static void main()

   {

       Configuration appCfg=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLeverl.None);

       AppSettingsSection appSettings=appCfg.AppSettings;

       int myInt;

       if(int.TryParse(appSettings.Settings["MyInt"].Value, out myInt))

       {

              System.Console.WriteLine(myInt);

              myInt*=10;

              appSettings.Settings["MyInt"].value=myInt.ToString();

              appCfg.Save();

       }

   }

}

 

 

 

这个方法存在的缺点:

(1)。 参数值没有类型。我们需要显示地将一个字符串解析为一个整型变量,以获取MyInt的值

(2)。 由于参数的名字是一个字符串,因此无法被编译器验证。这样会降低开发效率,因为开发者无法从智能感知中获益。

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;configuration&gt; &lt;connectionStrings&gt; &lt;add name=&quot;MySqlConnString&quot; connectionString=&quot;Database=falink300;Data Source=localhost;User ID=root;Password=8888&quot; /&gt; &lt;add name=&quot;MyDBType&quot; connectionString=&quot;mysql&quot; /&gt; &lt;add name=&quot;MyXmlPathString&quot; connectionString=&quot;D:\config\File\&quot; /&gt; &lt;/connectionStrings&gt; &lt;appSettings&gt; &lt;add key=&quot;version&quot; value=&quot;4.4.2&quot;&gt;&lt;/add&gt; &lt;add key=&quot;IsLaunchComServer&quot; value=&quot;False&quot; /&gt; &lt;add key=&quot;FAServiceName&quot; value=&quot;FAServer&quot; /&gt; &lt;add key=&quot;IsWindowsService&quot; value=&quot;False&quot; /&gt; &lt;add key=&quot;IsLaunchRemotingServer&quot; value=&quot;True&quot; /&gt; &lt;add key=&quot;FAConfigurationURL&quot; value=&quot;&quot; /&gt; &lt;add key=&quot;ConsoleRemotingURL&quot; value=&quot;&quot; /&gt; &lt;add key=&quot;RecipeApproveLevel&quot; value=&quot;1&quot; /&gt; &lt;add key=&quot;ctcserver&quot; value=&quot;A&quot;&gt;&lt;/add&gt; &lt;add key=&quot;faserver&quot; value=&quot;A&quot;&gt;&lt;/add&gt; &lt;add key=&quot;bridgeport&quot; value=&quot;9002&quot;&gt;&lt;/add&gt; &lt;add key=&quot;bridgeserver&quot; value=&quot;bridgeserver&quot;&gt;&lt;/add&gt; &lt;add key=&quot;RecipeApproveLevel&quot; value=&quot;2&quot;&gt;&lt;/add&gt; &lt;add key=&quot;bindTo&quot; value=&quot;127.0.0.1&quot;&gt;&lt;/add&gt; &lt;add key=&quot;pjobType&quot; value=&quot;default&quot;&gt;&lt;/add&gt; &lt;add key=&quot;Fix2971&quot; value=&quot;False&quot;&gt;&lt;/add&gt; &lt;add key=&quot;SubstrateProcessStateOffset&quot; value=&quot;1&quot;&gt;&lt;/add&gt; &lt;add key=&quot;commandtype&quot; value=&quot;1&quot;&gt;&lt;/add&gt; &lt;add key=&quot;CheckDeviceID&quot; value=&quot;False&quot;&gt;&lt;/add&gt; &lt;add key=&quot;ConnectWithoutS1F13&quot; value=&quot;False&quot;&gt;&lt;/add&gt; &lt;add key=&quot;EventFireToCTC&quot; value=&quot;False&quot;&gt;&lt;/add&gt; &lt;add key=&quot;SpoolMsg&quot; value=&quot;6:1,11;&quot;&gt;&lt;/add&gt; &lt;add key=&quot;MaxSpooledCount&quot; value=&quot;50&quot;&gt;&lt;/add&gt; &lt;add key=&quot;Heartbeat&quot; value=&quot;LinkTest&quot;&gt;&lt;/add&gt; &lt;add key=&quot;EstablishByHeartbeat&quot; value=&quot;False&quot;&gt;&lt;/add&gt; &lt;add key=&quot;DownloadRecipeFormat&quot; value=&quot;string&quot;&gt;&lt;/add&gt; &lt;!--&lt;add key=&quot;seteventidoffset&quot; value=&quot;400000000&quot;&gt;&lt;/add&gt;--&gt; &lt;!--Chinese: utf-8; English: us-ascii--&gt; &lt;add key=&quot;ChineseEncoding&quot; value=&quot;us-ascii&quot;&gt;&lt;/add&gt; &lt;add key=&quot;ThreadPoolMinCount&quot; value=&quot;30&quot;&gt;&lt;/add&gt; &lt;add key=&quot;S1F3DelayTime&quot; value=&quot;1000&quot;&gt;&lt;/add&gt; &lt;add key=&quot;nicid&quot; value=&quot;1&quot;&gt;&lt;/add&gt; &lt;add key=&quot;00000000-0000-0000-0000-000000000001&quot; value=&quot;3&quot;&gt;&lt;/add&gt; &lt;add key=&quot;00000000-0000-0000-0000-000000000002&quot; value=&quot;3&quot;&gt;&lt;/add&gt; &lt;/appSettings&gt; &lt;startup&gt; &lt;supportedRuntime version=&quot;v4.0&quot; sku=&quot;.NETFramework,Version=v4.5.1&quot; /&gt; &lt;/startup&gt; &lt;/configuration&gt;解释这个配置文件,每一行的作用
最新发布
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值