ConfigurationBuilder 类

定义

表示将由自定义配置生成器实现扩展的基类。

public ref class ConfigurationBuilder abstract : System::Configuration::Provider::ProviderBase
public abstract class ConfigurationBuilder : System.Configuration.Provider.ProviderBase
type ConfigurationBuilder = class
    inherit ProviderBase
Public MustInherit Class ConfigurationBuilder
Inherits ProviderBase
继承
ConfigurationBuilder

示例

以下示例演示如何实现简单的 ConfigurationBuilder 来读取环境变量:

using System;
using System.Configuration;
using System.Xml;

namespace Samples.AspNet.Config
{

   public class SampleConfigurationBuilder : ConfigurationBuilder
    {

        public override XmlNode ProcessRawXml(XmlNode rawXml) 
        {

            string rawXmlString = rawXml.OuterXml;

            if (String.IsNullOrEmpty(rawXmlString)) {
                return rawXml;
            }

            rawXmlString = Environment.ExpandEnvironmentVariables(rawXmlString);

            XmlDocument doc = new XmlDocument();
            doc.PreserveWhitespace = true;
            doc.LoadXml(rawXmlString);
            return doc.DocumentElement;
        }

        public override ConfigurationSection ProcessConfigurationSection(ConfigurationSection configSection) 
            => configSection;
    }
}
Imports System.Configuration
Imports System.Xml

Public Class SampleConfigurationBuilder : Inherits ConfigurationBuilder

    Public Overrides Function ProcessRawXml(rawXml As XmlNode)  As XmlNode

        Dim rawXmlString As String = rawXml.OuterXml

        If String.IsNullOrEmpty(rawXmlString) Then
            Return rawXml
        End If

        rawXmlString = Environment.ExpandEnvironmentVariables(rawXmlString)

        Dim doc As New XmlDocument()
        doc.PreserveWhitespace = True
        doc.LoadXml(rawXmlString)
        Return doc.DocumentElement
    End Function

    Public Overrides Function ProcessConfigurationSection(configSection As ConfigurationSection)  As ConfigurationSection
       Return configSection
    End Function

End Class

以下示例是适用于上一个示例的配置文件的摘录。 这会将环境变量应用于 appSettings 配置,并使这些值在 下 ConfigurationManager.AppSettings可用。

<!-- To declare and use Configuration Builders in your configuration chain, update your app.config or web.config file as follows:  -->

<configSections>
  <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
</configSections>

<configBuilders>
  <builders>
    <add name="SampleConfigurationBuilder" type="CustomConfigBuilders.MyConfigBuilder, CustomConfigBuilders" />
  </builders>
</configBuilders>

<!-- To apply Configuration Builders to a configuration section, use the 'configBuilders' tag as follows:  -->
<appSettings configBuilders="SampleConfigurationBuilder">
  <add key="COMPUTERNAME" value="Will Be Replaced by EnvironmentVariable" />
</appSettings>

注解

从此类派生,以便从要使用标准 ConfigurationManager API 在.NET Framework应用程序中使用的外部源读取配置。 ConfigurationBuilders 在 NuGet.org 上可用,用于从环境变量、Azure 密钥保管库和许多其他源读取数据。

ConfigurationBuilders 的多个实现可从 NuGet.org 获取:

构造函数

ConfigurationBuilder()

初始化 ConfigurationBuilder 类的新实例。

属性

Description

获取一条简短的易懂描述,它适合在管理工具或其他用户界面 (UI) 中显示。

(继承自 ProviderBase)
Name

获得一个友好名称,用于在配置过程中引用提供程序。

(继承自 ProviderBase)

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Initialize(String, NameValueCollection)

初始化配置生成器。

(继承自 ProviderBase)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ProcessConfigurationSection(ConfigurationSection)

接受配置系统中的 ConfigurationSection 对象,并返回一个修改后的或新的 ConfigurationSection 对象供将来使用。

ProcessRawXml(XmlNode)

接受表示配置文件中的原始配置节的 XmlNode,并返回修改后的或新的 XmlNode 供将来使用。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于