C#: 修改app.config 来自MSDN

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 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 (selection != string.Empty)
                    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
}

转载于:https://www.cnblogs.com/dmgactive/archive/2011/05/12/2044517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值