The easiest way to add configuration
settings to a configuration file is to use the
appSettings
element. Configuration settings added
this way take the form of key-value pairs. These key-value pairs may
be added anywhere in the hierarchy of configuration files. Once
added, key-value pairs can be removed individually in a configuration
file lower in the hierarchy, or the entire set can be cleared.
Example 15-1 shows an excerpt from a machine
configuration file, with an appSettings
element
added.
<?xml version="1.0" encoding="UTF-8" ?> <configuration> ... <appSettings> <add key="some key" value="some value" /> </appSettings> ... </configuration>
This configuration file simply adds a configuration setting whose key is “some key” and whose value is “some value”. The added key will be available to all .NET applications running on this machine.
Example 15-2 shows an application configuration file
that uses the appSettings
element to remove the
key added in the machine configuration file and add another key.
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <appSettings> <remove key="some key" /> <add key="some other key" value="some other value" /> </appSettings> </configuration>
The
application that loads this application configuration file will no
longer have the key-value pair with key “some
key”, but it will have a key-value pair with key
“some other key”. The application
configuration file can also use the clear
element
to remove all the appSettings
key-value pairs.
The key-value pairs are accessed using the
System.Configuration.ConfigurationSettings
class.
Example 15-3 shows how you can access the key-value
pairs defined in Examples Example 15-1 and Example 15-2.
using System; using System.Configuration; public class AppSettingsTest { public static void Main(string [ ] args) { string someKey = "some key"; string someOtherKey = "some other key"; Console.WriteLine(""{0}"="{1}"", someKey, ConfigurationSettings.AppSettings[someKey]); Console.WriteLine(""{0}"="{1}"", someOtherKey, ConfigurationSettings.AppSettings[someOtherKey]); } }
Running the AppSettingsTest
executable, you can
expect to see the following output:
"some key"="" "some other key"="some other value"
That’s fine, if
you’re only interested in string values. If you need
to retrieve a different type of data, however, you can use the
AppSettingsReader
class.
AppSettingsReader
has only one method,
GetValue( )
, which takes as parameters the key
name and the Type
of data you wish to have
returned. For example, take the following
appSettings
element:
<appSettings> <add key="some numeric key" value="5.00987" /> </appSettings>
To return that value as a decimal
, you would use
the following code:
AppSettingsReader reader = new AppSettingsReader( ); decimal value = (decimal)reader.GetValue("some numeric key",typeof(decimal));
18.191.44.23