Configuration.Save Method (ConfigurationSaveMode)


Writes the configuration settings contained within this Configuration object to the current XML configuration file.

Namespace:   System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

public void Save(
	ConfigurationSaveMode saveMode


Type: System.Configuration.ConfigurationSaveMode

A ConfigurationSaveMode value that determines which property values to save.

Exception Condition

The configuration file could not be written to.

- or -

The configuration file has changed.

The Save method persists configuration settings in the Configuration object based on the saveMode parameter.

If a configuration file does not exist at the physical location represented by the FilePath property, a new configuration file will be created to contain any settings that are different from the inherited configuration.

If the configuration file has changed since this Configuration object was created, a run-time error occurs.


When 'Creator Owner' is listed in the ACL (Access Control List) of the directory containing the configuration file, the current user of Save becomes the new owner of the file and inherits the permissions granted to 'Creator Owner'. This results in an elevation of privileges for the current user and a removal of privileges for the previous owner.

The following code example demonstrates how to use the Save method to save a custom section.

// Show how to create an instance of the Configuration class
// that represents this application configuration file.  
static void CreateConfigurationFile()

        // Create a custom configuration section.
        CustomSection customSection = new CustomSection();

        // Get the current configuration file.
        System.Configuration.Configuration config =

        // Create the custom section entry  
        // in <configSections> group and the 
        // related target section in <configuration>.
        if (config.Sections["CustomSection"] == null)
            config.Sections.Add("CustomSection", customSection);

        // Create and add an entry to appSettings section.

        string conStringname="LocalSqlServer";
        string conString = @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true";
        string providerName="System.Data.SqlClient";

        ConnectionStringSettings connStrSettings = new ConnectionStringSettings();
        connStrSettings.Name = conStringname;
        connStrSettings.ConnectionString= conString;
        connStrSettings.ProviderName = providerName;


        // Add an entry to appSettings section.
        int appStgCnt =
        string newKey = "NewKey" + appStgCnt.ToString();

        string newValue = DateTime.Now.ToLongDateString() +
          " " + DateTime.Now.ToLongTimeString();

        config.AppSettings.Settings.Add(newKey, newValue);

        // Save the configuration file.
        customSection.SectionInformation.ForceSave = true;

        Console.WriteLine("Created configuration file: {0}",

    catch (ConfigurationErrorsException err)
        Console.WriteLine("CreateConfigurationFile: {0}", err.ToString());


.NET Framework
Available since 2.0
Return to top