ConfigurationBuilder 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示将由自定义配置生成器实现扩展的基类。
public ref class ConfigurationBuilder abstract : System::Configuration::Provider::ProviderBasepublic abstract class ConfigurationBuilder : System.Configuration.Provider.ProviderBasetype ConfigurationBuilder = class
    inherit ProviderBasePublic MustInherit Class ConfigurationBuilder
Inherits ProviderBase- 继承
示例
以下示例演示如何实现简单的 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 获取:
- EnvironmentConfigBuilder - 从环境变量中读取。
- AzureKeyVaultConfigBuilder - 从 Azure 密钥保管库读取。
- UserSecretsConfigBuilder - 从磁盘上的 usersecrets 文件中读取,类似于 ASP.NET Core功能。
- SimpleJsonConfigBuilder - 从 JSON 文件读取。
构造函数
| 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) | |
| ToString() | 返回表示当前对象的字符串。(继承自 Object) |