ConfigurationBuilder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示将由自定义配置生成器实现扩展的基类。
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 来读取环境变量:
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) |