AppSettingsSection Class

Definition

Provides configuration system support for the appSettings configuration section. This class cannot be inherited.

public ref class AppSettingsSection sealed : System::Configuration::ConfigurationSection
public sealed class AppSettingsSection : System.Configuration.ConfigurationSection
type AppSettingsSection = class
    inherit ConfigurationSection
Public NotInheritable Class AppSettingsSection
Inherits ConfigurationSection
Inheritance

Examples

The following example shows how to use the AppSettingsSection class in a console application. It reads and writes the key/value pairs that are contained by the appSettings section. It also shows how to access the File property of the AppSettingsSection class.

Note

Before you compile this code, add a reference in your project to System.Configuration.dll.

using System;
using System.Collections.Specialized;
using System.Configuration;
using System.Text;
using System.IO;

// IMPORTANT: To compile this example, you must add to the project 
// a reference to the System.Configuration assembly.
//

class UsingAppSettingsSection
{
    #region UsingAppSettingsSection

    // This function shows how to use the File property of the
    // appSettings section.
    // The File property is used to specify an auxiliary 
    // configuration file.
    // Usually you create an auxiliary file off-line to store 
    // additional settings that you can modify as needed without
    // causing an application restart,as in the case of a Web 
    // application.
    // These settings are then added to the ones defined in the
    // application configuration file.
    static void  IntializeConfigurationFile()
    {
        // Create a set of unique key/value pairs to store in
        // the appSettings section of an auxiliary configuration
        // file.
        string time1 = String.Concat(DateTime.Now.ToLongDateString(),
                               " ", DateTime.Now.ToLongTimeString());

        string time2 = String.Concat(DateTime.Now.ToLongDateString(),
                               " ", new DateTime(2009, 06, 30).ToLongTimeString());
       
        string[] buffer = {"<appSettings>",
        "<add key='AuxAppStg0' value='" + time1 + "'/>", 
        "<add key='AuxAppStg1' value='" + time2 + "'/>",
        "</appSettings>"};

        // Create an auxiliary configuration file and store the
        // appSettings defined before.
        // Note creating a file at run-time is just for demo 
        // purposes to run this example.
        File.WriteAllLines("auxiliaryFile.config", buffer);
        
        // Get the current configuration associated
        // with the application.
        System.Configuration.Configuration config =
           ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        // Associate the auxiliary with the default
        // configuration file. 
        System.Configuration.AppSettingsSection appSettings = config.AppSettings;
        appSettings.File = "auxiliaryFile.config";
        
        // Save the configuration file.
        config.Save(ConfigurationSaveMode.Modified);

        // Force a reload in memory of the 
        // changed section.
        ConfigurationManager.RefreshSection("appSettings");
    }

    // This function shows how to write a key/value
    // pair to the appSettings section.
    static void WriteAppSettings()
    {
        try
        {
            // Get the application configuration file.
            System.Configuration.Configuration config =
               ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // Create a unique key/value pair to add to 
            // the appSettings section.
            string keyName = "AppStg" + config.AppSettings.Settings.Count;
            string value = string.Concat(DateTime.Now.ToLongDateString(),
                           " ", DateTime.Now.ToLongTimeString());

            // Add the key/value pair to the appSettings 
            // section.
            // config.AppSettings.Settings.Add(keyName, value);
            System.Configuration.AppSettingsSection appSettings = config.AppSettings;
            appSettings.Settings.Add(keyName, value);

            // Save the configuration file.
            config.Save(ConfigurationSaveMode.Modified);

            // Force a reload in memory of the changed section.
            // This to read the section with the
            // updated values.
            ConfigurationManager.RefreshSection("appSettings");

            Console.WriteLine(
                "Added the following Key: {0} Value: {1} .", keyName, value);
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception raised: {0}",
                e.Message);
        }
    }

    // This function shows how to read the key/value
    // pairs (settings collection)contained in the 
    // appSettings section.
    static void ReadAppSettings()
    {
        try
        {

            // Get the configuration file.
            System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // Get the appSettings section.
            System.Configuration.AppSettingsSection appSettings =
                (System.Configuration.AppSettingsSection)config.GetSection("appSettings");

            // Get the auxiliary file name.
            Console.WriteLine("Auxiliary file: {0}", config.AppSettings.File);

            // Get the settings collection (key/value pairs).
            if (appSettings.Settings.Count != 0)
            {
                foreach (string key in appSettings.Settings.AllKeys)
                {
                    string value = appSettings.Settings[key].Value;
                    Console.WriteLine("Key: {0} Value: {1}", key, value);
                }
            }
            else
            {
                Console.WriteLine("The appSettings section is empty. Write first.");
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception raised: {0}",
                e.Message);
        }
    }

    #endregion UsingAppSettingsSection

    #region ApplicationMain

    // This class obtains user's input and provide feedback.
    // It contains the application Main.
    class ApplicationMain
    {
        // Display user's menu.
        public static void UserMenu()
        {
            StringBuilder buffer = new StringBuilder();

            buffer.AppendLine("Please, make your selection.");
            buffer.AppendLine("1    -- Write appSettings section.");
            buffer.AppendLine("2    -- Read  appSettings section.");
            buffer.AppendLine("?    -- Display help.");
            buffer.AppendLine("Q,q  -- Exit the application.");

            Console.Write(buffer.ToString());
        }

        // Obtain user's input and provide
        // feedback.
        static void Main(string[] args)
        {
            // Define user selection string.
            string selection;

            // Get the name of the application.
            string appName =
              Environment.GetCommandLineArgs()[0];

            IntializeConfigurationFile();

            // Get user selection.
            while (true)
            {

                UserMenu();
                Console.Write("> ");
                selection = Console.ReadLine();
                if (!string.IsNullOrEmpty(selection))
                    break;
            }

            while (selection.ToLower() != "q")
            {
                // Process user's input.
                switch (selection)
                {
                    case "1":
                        WriteAppSettings();
                        break;

                    case "2":
                        ReadAppSettings();
                        break;

                    default:
                        UserMenu();
                        break;
                }
                Console.Write("> ");
                selection = Console.ReadLine();
            }
        }
    }
    #endregion ApplicationMain
}
Imports System.Collections.Specialized
Imports System.Configuration
Imports System.Text
Imports System.IO

' IMPORTANT: To compile this example, you must add to the project 
' a reference to the System.Configuration assembly.
'

Class UsingAppSettingsSection
#Region "UsingAppSettingsSection"

    ' This function shows how to use the File property of the
    ' appSettings section.
    ' The File property is used to specify an auxiliary 
    ' configuration file.
    ' Usually you create an auxiliary file off-line to store 
    ' additional settings that you can modify as needed without
    ' causing an application restart,as in the case of a Web 
    ' application.
    ' These settings are then added to the ones defined in the
    ' application configuration file.
    Private Shared Sub IntializeConfigurationFile()
        ' Create a set of unique key/value pairs to store in
        ' the appSettings section of an auxiliary configuration
        ' file.
        Dim time1 As String = String.Concat(Date.Now.ToLongDateString(), " ", Date.Now.ToLongTimeString())

        Dim time2 As String = String.Concat(Date.Now.ToLongDateString(), " ", New Date(2009, 6, 30).ToLongTimeString())

        Dim buffer() As String = {"<appSettings>", "<add key='AuxAppStg0' value='" & time1 & "'/>", "<add key='AuxAppStg1' value='" & time2 & "'/>", "</appSettings>"}

        ' Create an auxiliary configuration file and store the
        ' appSettings defined before.
        ' Note creating a file at run-time is just for demo 
        ' purposes to run this example.
        File.WriteAllLines("auxiliaryFile.config", buffer)

        ' Get the current configuration associated
        ' with the application.
        Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

        ' Associate the auxiliary with the default
        ' configuration file. 
        Dim appSettings As System.Configuration.AppSettingsSection = config.AppSettings
        appSettings.File = "auxiliaryFile.config"

        ' Save the configuration file.
        config.Save(ConfigurationSaveMode.Modified)

        ' Force a reload in memory of the 
        ' changed section.
        ConfigurationManager.RefreshSection("appSettings")

    End Sub

    ' This function shows how to write a key/value
    ' pair to the appSettings section.
    Private Shared Sub WriteAppSettings()
        Try
            ' Get the application configuration file.
            Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

            ' Create a unique key/value pair to add to 
            ' the appSettings section.
            Dim keyName As String = "AppStg" & config.AppSettings.Settings.Count
            Dim value As String = String.Concat(Date.Now.ToLongDateString(), " ", Date.Now.ToLongTimeString())

            ' Add the key/value pair to the appSettings 
            ' section.
            ' config.AppSettings.Settings.Add(keyName, value);
            Dim appSettings As System.Configuration.AppSettingsSection = config.AppSettings
            appSettings.Settings.Add(keyName, value)

            ' Save the configuration file.
            config.Save(ConfigurationSaveMode.Modified)

            ' Force a reload in memory of the changed section.
            ' This to read the section with the
            ' updated values.
            ConfigurationManager.RefreshSection("appSettings")

            Console.WriteLine("Added the following Key: {0} Value: {1} .", keyName, value)
        Catch e As Exception
            Console.WriteLine("Exception raised: {0}", e.Message)
        End Try
    End Sub

    ' This function shows how to read the key/value
    ' pairs (settings collection)contained in the 
    ' appSettings section.
    Private Shared Sub ReadAppSettings()
        Try

            ' Get the configuration file.
            Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

            ' Get the appSettings section.
            Dim appSettings As System.Configuration.AppSettingsSection = CType(config.GetSection("appSettings"), System.Configuration.AppSettingsSection)

            ' Get the auxiliary file name.
            Console.WriteLine("Auxiliary file: {0}", config.AppSettings.File)


            ' Get the settings collection (key/value pairs).
            If appSettings.Settings.Count <> 0 Then
                For Each key As String In appSettings.Settings.AllKeys
                    Dim value As String = appSettings.Settings(key).Value
                    Console.WriteLine("Key: {0} Value: {1}", key, value)
                Next key
            Else
                Console.WriteLine("The appSettings section is empty. Write first.")
            End If
        Catch e As Exception
            Console.WriteLine("Exception raised: {0}", e.Message)
        End Try
    End Sub

#End Region ' UsingAppSettingsSection


#Region "ApplicationMain"

    Shared Sub UserMenu()
        Dim buffer As New StringBuilder()

        buffer.AppendLine("Please, make your selection.")
        buffer.AppendLine("1    -- Write appSettings section.")
        buffer.AppendLine("2    -- Read  appSettings section.")
        buffer.AppendLine("?    -- Display help.")
        buffer.AppendLine("Q,q  -- Exit the application.")

        Console.Write(buffer.ToString())
    End Sub

    ' Obtain user's input and provide
    ' feedback.
    Shared Sub Main(ByVal args() As String)
        ' Define user selection string.
        Dim selection As String

        ' Get the name of the application.
        Dim appName As String = Environment.GetCommandLineArgs()(0)

        IntializeConfigurationFile()

        ' Get user selection.
        Do

            UserMenu()
            Console.Write("> ")
            selection = Console.ReadLine()
            If selection <> String.Empty Then
                Exit Do
            End If
        Loop

        Do While selection.ToLower() <> "q"
            ' Process user's input.
            Select Case selection
                Case "1"
                    WriteAppSettings()

                Case "2"
                    ReadAppSettings()

                Case Else
                    UserMenu()
            End Select
            Console.Write("> ")
            selection = Console.ReadLine()
        Loop
    End Sub
    ' End Class
#End Region ' ApplicationMain
End Class
Imports System.Collections.Specialized
Imports System.Configuration
Imports System.Text
Imports System.IO

' IMPORTANT: To compile this example, you must add to the project 
' a reference to the System.Configuration assembly.
'

Class UsingAppSettingsSection
#Region "UsingAppSettingsSection"

    ' This function shows how to use the File property of the
    ' appSettings section.
    ' The File property is used to specify an auxiliary 
    ' configuration file.
    ' Usually you create an auxiliary file off-line to store 
    ' additional settings that you can modify as needed without
    ' causing an application restart,as in the case of a Web 
    ' application.
    ' These settings are then added to the ones defined in the
    ' application configuration file.
    Private Shared Sub IntializeConfigurationFile()
        ' Create a set of unique key/value pairs to store in
        ' the appSettings section of an auxiliary configuration
        ' file.
        Dim time1 As String = String.Concat(Date.Now.ToLongDateString(), " ", Date.Now.ToLongTimeString())

        Dim time2 As String = String.Concat(Date.Now.ToLongDateString(), " ", New Date(2009, 6, 30).ToLongTimeString())

        Dim buffer() As String = {"<appSettings>", "<add key='AuxAppStg0' value='" & time1 & "'/>", "<add key='AuxAppStg1' value='" & time2 & "'/>", "</appSettings>"}

        ' Create an auxiliary configuration file and store the
        ' appSettings defined before.
        ' Note creating a file at run-time is just for demo 
        ' purposes to run this example.
        File.WriteAllLines("auxiliaryFile.config", buffer)

        ' Get the current configuration associated
        ' with the application.
        Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

        ' Associate the auxiliary with the default
        ' configuration file. 
        Dim appSettings As System.Configuration.AppSettingsSection = config.AppSettings
        appSettings.File = "auxiliaryFile.config"

        ' Save the configuration file.
        config.Save(ConfigurationSaveMode.Modified)

        ' Force a reload in memory of the 
        ' changed section.
        ConfigurationManager.RefreshSection("appSettings")

    End Sub

    ' This function shows how to write a key/value
    ' pair to the appSettings section.
    Private Shared Sub WriteAppSettings()
        Try
            ' Get the application configuration file.
            Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

            ' Create a unique key/value pair to add to 
            ' the appSettings section.
            Dim keyName As String = "AppStg" & config.AppSettings.Settings.Count
            Dim value As String = String.Concat(Date.Now.ToLongDateString(), " ", Date.Now.ToLongTimeString())

            ' Add the key/value pair to the appSettings 
            ' section.
            ' config.AppSettings.Settings.Add(keyName, value);
            Dim appSettings As System.Configuration.AppSettingsSection = config.AppSettings
            appSettings.Settings.Add(keyName, value)

            ' Save the configuration file.
            config.Save(ConfigurationSaveMode.Modified)

            ' Force a reload in memory of the changed section.
            ' This to read the section with the
            ' updated values.
            ConfigurationManager.RefreshSection("appSettings")

            Console.WriteLine("Added the following Key: {0} Value: {1} .", keyName, value)
        Catch e As Exception
            Console.WriteLine("Exception raised: {0}", e.Message)
        End Try
    End Sub

    ' This function shows how to read the key/value
    ' pairs (settings collection)contained in the 
    ' appSettings section.
    Private Shared Sub ReadAppSettings()
        Try

            ' Get the configuration file.
            Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

            ' Get the appSettings section.
            Dim appSettings As System.Configuration.AppSettingsSection = CType(config.GetSection("appSettings"), System.Configuration.AppSettingsSection)

            ' Get the auxiliary file name.
            Console.WriteLine("Auxiliary file: {0}", config.AppSettings.File)


            ' Get the settings collection (key/value pairs).
            If appSettings.Settings.Count <> 0 Then
                For Each key As String In appSettings.Settings.AllKeys
                    Dim value As String = appSettings.Settings(key).Value
                    Console.WriteLine("Key: {0} Value: {1}", key, value)
                Next key
            Else
                Console.WriteLine("The appSettings section is empty. Write first.")
            End If
        Catch e As Exception
            Console.WriteLine("Exception raised: {0}", e.Message)
        End Try
    End Sub

#End Region ' UsingAppSettingsSection


#Region "ApplicationMain"

    Shared Sub UserMenu()
        Dim buffer As New StringBuilder()

        buffer.AppendLine("Please, make your selection.")
        buffer.AppendLine("1    -- Write appSettings section.")
        buffer.AppendLine("2    -- Read  appSettings section.")
        buffer.AppendLine("?    -- Display help.")
        buffer.AppendLine("Q,q  -- Exit the application.")

        Console.Write(buffer.ToString())
    End Sub

    ' Obtain user's input and provide
    ' feedback.
    Shared Sub Main(ByVal args() As String)
        ' Define user selection string.
        Dim selection As String

        ' Get the name of the application.
        Dim appName As String = Environment.GetCommandLineArgs()(0)

        IntializeConfigurationFile()

        ' Get user selection.
        Do

            UserMenu()
            Console.Write("> ")
            selection = Console.ReadLine()
            If selection <> String.Empty Then
                Exit Do
            End If
        Loop

        Do While selection.ToLower() <> "q"
            ' Process user's input.
            Select Case selection
                Case "1"
                    WriteAppSettings()

                Case "2"
                    ReadAppSettings()

                Case Else
                    UserMenu()
            End Select
            Console.Write("> ")
            selection = Console.ReadLine()
        Loop
    End Sub
    ' End Class
#End Region ' ApplicationMain
End Class

Remarks

The appSettings configuration section provides for key/value pairs of string values for an application. Rather than accessing these values by using an instance of an AppSettingsSection object, you should use the AppSettings property of the ConfigurationManager class or the AppSettings property of the WebConfigurationManager class.

Constructors

AppSettingsSection()

Initializes a new instance of the AppSettingsSection class.

Properties

CurrentConfiguration

Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Inherited from ConfigurationElement)
ElementInformation

Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Inherited from ConfigurationElement)
ElementProperty

Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Inherited from ConfigurationElement)
EvaluationContext

Gets the ContextInformation object for the ConfigurationElement object.

(Inherited from ConfigurationElement)
File

Gets or sets a configuration file that provides additional settings or overrides the settings specified in the appSettings element.

HasContext

Gets a value that indicates whether the CurrentConfiguration property is null.

(Inherited from ConfigurationElement)
Item[ConfigurationProperty]

Gets or sets a property or attribute of this configuration element.

(Inherited from ConfigurationElement)
Item[String]

Gets or sets a property, attribute, or child element of this configuration element.

(Inherited from ConfigurationElement)
LockAllAttributesExcept

Gets the collection of locked attributes.

(Inherited from ConfigurationElement)
LockAllElementsExcept

Gets the collection of locked elements.

(Inherited from ConfigurationElement)
LockAttributes

Gets the collection of locked attributes.

(Inherited from ConfigurationElement)
LockElements

Gets the collection of locked elements.

(Inherited from ConfigurationElement)
LockItem

Gets or sets a value indicating whether the element is locked.

(Inherited from ConfigurationElement)
Properties

Gets the collection of properties.

(Inherited from ConfigurationElement)
SectionInformation

Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

(Inherited from ConfigurationSection)
Settings

Gets a collection of key/value pairs that contains application settings.

Methods

DeserializeElement(XmlReader, Boolean)

Reads XML from the configuration file.

(Inherited from ConfigurationElement)
DeserializeSection(XmlReader)

Reads XML from the configuration file.

(Inherited from ConfigurationSection)
Equals(Object)

Compares the current ConfigurationElement instance to the specified object.

(Inherited from ConfigurationElement)
GetHashCode()

Gets a unique value representing the current ConfigurationElement instance.

(Inherited from ConfigurationElement)
GetRuntimeObject()

Returns a custom object when overridden in a derived class.

(Inherited from ConfigurationSection)
GetTransformedAssemblyString(String)

Returns the transformed version of the specified assembly name.

(Inherited from ConfigurationElement)
GetTransformedTypeString(String)

Returns the transformed version of the specified type name.

(Inherited from ConfigurationElement)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
Init()

Sets the ConfigurationElement object to its initial state.

(Inherited from ConfigurationElement)
InitializeDefault()

Used to initialize a default set of values for the ConfigurationElement object.

(Inherited from ConfigurationElement)
IsModified()

Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

(Inherited from ConfigurationSection)
IsReadOnly()

Gets a value indicating whether the ConfigurationElement object is read-only.

(Inherited from ConfigurationElement)
ListErrors(IList)

Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

(Inherited from ConfigurationElement)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnDeserializeUnrecognizedAttribute(String, String)

Gets a value indicating whether an unknown attribute is encountered during deserialization.

(Inherited from ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Gets a value indicating whether an unknown element is encountered during deserialization.

(Inherited from ConfigurationElement)
OnRequiredPropertyNotFound(String)

Throws an exception when a required property is not found.

(Inherited from ConfigurationElement)
PostDeserialize()

Called after deserialization.

(Inherited from ConfigurationElement)
PreSerialize(XmlWriter)

Called before serialization.

(Inherited from ConfigurationElement)
Reset(ConfigurationElement)

Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

(Inherited from ConfigurationElement)
ResetModified()

Resets the value of the IsModified() method to false when implemented in a derived class.

(Inherited from ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Inherited from ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file.

(Inherited from ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Inherited from ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Sets a property to the specified value.

(Inherited from ConfigurationElement)
SetReadOnly()

Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

(Inherited from ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

(Inherited from ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

(Inherited from ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Indicates whether the current ConfigurationSection instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

(Inherited from ConfigurationSection)
ToString()

Returns a string that represents the current object.

(Inherited from Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifies the ConfigurationElement object to remove all values that should not be saved.

(Inherited from ConfigurationElement)

Applies to

See also