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) |