System.Configuration.AppSettingsSection 类

方法描述

为 appSettings 配置节提供配置系统支持。 此类不能被继承。

语法定义(C# System.Configuration.AppSettingsSection 类 的用法)

public sealed class AppSettingsSection : ConfigurationSection

构造函数

构造函数名称 构造函数描述
AppSettingsSection 基础结构。初始化 AppSettingsSection 类的新实例。

成员/方法

方法名称 方法描述
DeserializeElement 读取配置文件中的 XML。 (继承自 ConfigurationElement。)
DeserializeSection 基础结构。读取配置文件中的 XML。 (继承自 ConfigurationSection。)
Equals 将当前的 ConfigurationElement 实例与指定的对象进行比较。 (继承自 ConfigurationElement。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 获取一个唯一值,表示当前 ConfigurationElement 实例。 (继承自 ConfigurationElement。)
GetRuntimeObject 在派生的类中重写时返回自定义对象。 (继承自 ConfigurationSection。)
GetTransformedAssemblyString 返回指定程序集名称的转换版本。 (继承自 ConfigurationElement。)
GetTransformedTypeString 返回指定类型名称的转换版本。 (继承自 ConfigurationElement。)
GetType 获取当前实例的 Type。 (继承自 Object。)
Init 将 ConfigurationElement 对象设置为其初始状态。 (继承自 ConfigurationElement。)
InitializeDefault 用于初始化 ConfigurationElement 对象的默认值集。 (继承自 ConfigurationElement。)
IsModified 指示自上次在派生类中实现此配置元素时保存或加载以来是否对其进行过修改。 (继承自 ConfigurationSection。)
IsReadOnly 获取一个值,该值指示 ConfigurationElement 对象是否为只读。 (继承自 ConfigurationElement。)
ListErrors 将此 ConfigurationElement 对象以及所有子元素中无效属性的错误添加到传递的列表中。 (继承自 ConfigurationElement。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
OnDeserializeUnrecognizedAttribute 获取一个值,该值指示反序列化过程中是否遇到未知特性。 (继承自 ConfigurationElement。)
OnDeserializeUnrecognizedElement 获取一个值,该值指示反序列化过程中是否遇到未知元素。 (继承自 ConfigurationElement。)
OnRequiredPropertyNotFound 未找到所需属性时引发异常。 (继承自 ConfigurationElement。)
PostDeserialize 反序列化后调用。 (继承自 ConfigurationElement。)
PreSerialize 序列化前调用。 (继承自 ConfigurationElement。)
Reset 重置 ConfigurationElement 对象的内部状态,包括锁和属性集合。 (继承自 ConfigurationElement。)
ResetModified 在派生类中实现时,将 IsModified 方法的值重置为 false。 (继承自 ConfigurationSection。)
SerializeElement 当在派生类中实现后,将此配置元素的内容写入配置文件。 (继承自 ConfigurationElement。)
SerializeSection 基础结构。创建一个包含 ConfigurationSection 对象的分离视图的 XML 字符串,作为单独的节写入到文件中。 (继承自 ConfigurationSection。)
SerializeToXmlElement 当在派生类中实现后,将此配置元素的外部标记写入配置文件。 (继承自 ConfigurationElement。)
SetPropertyValue 将属性设置为指定值。 (继承自 ConfigurationElement。)
SetReadOnly 设置 ConfigurationElement 对象及所有子元素的 IsReadOnly 属性。 (继承自 ConfigurationElement。)
ShouldSerializeElementInTargetVersion 指示在为 .NET Framework 的指定目标版本序列化配置对象层次结构时,是否应序列化指定元素。 (继承自 ConfigurationSection。)
ShouldSerializePropertyInTargetVersion 指示在为指定目标版本的 .NET Framework 序列化配置对象层次结构时,是否应序列化指定属性。 (继承自 ConfigurationSection。)
ShouldSerializeSectionInTargetVersion 指示在为指定目标版本的 .NET Framework 序列化配置对象层次结构时,是否应序列化当前的 ConfigurationSection 实例。 (继承自 ConfigurationSection。)
ToString 返回表示当前对象的字符串。 (继承自 Object。)
Unmerge 修改 ConfigurationElement 对象以移除所有将不被保存的值。 (继承自 ConfigurationElement。)

提示和注释

appSettings 配置节为应用程序提供 string 值的键/值对。 不要使用 AppSettingsSection 对象的实例访问这些值,而应使用 ConfigurationManager 类的 AppSettings 属性或 WebConfigurationManager 类的 AppSettings 属性。

Topic

Location

如何:从 Web.config 文件读取应用程序设置配置 ASP .NET Web 应用程序

如何:从 Web.config 文件读取应用程序设置在 Visual Studio 中生成 ASP .NET Web 应用程序

如何:从 Web.config 文件读取应用程序设置在 Visual Studio 中生成 ASP .NET Web 应用程序

System.Configuration.AppSettingsSection 类例子

编译此代码之前,在项目中添加一个对 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 = {"",
        "", 
        "",
        ""};

        // 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
}

继承层次结构

System.Object

System.Configuration.ConfigurationElement

System.Configuration.ConfigurationSection

System.Configuration.AppSettingsSection

命名空间

namespace: System.Configuration

程序集: System.Configuration(在 System.Configuration.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。