ASP.NET용 구성 빌더
구성 작성기에서는 ASP.NET 앱이 외부 원본에서 구성 값을 가져오기 위한 최신 및 민첩한 메커니즘을 제공합니다.
구성 작성기:
- .NET Framework 4.7.1 이상에서 사용할 수 있습니다.
- 구성 값을 읽기 위한 유연한 메커니즘을 제공합니다.
- 컨테이너 및 클라우드 중심 환경으로 전환할 때 앱의 기본 요구 사항 중 일부를 해결합니다.
- .NET 구성 시스템에서 이전에 사용할 수 없었던 원본(예: Azure Key Vault 및 환경 변수)에서 그려 구성 데이터의 보호를 개선하는 데 사용할 수 있습니다.
구성 작성기에서 처리할 수 있는 일반적인 시나리오는 키/값 패턴을 따르는 구성 섹션에 대한 기본 키/값 대체 메커니즘을 제공하는 것입니다. ConfigurationBuilders의 .NET Framework 개념은 특정 구성 섹션 또는 패턴에 국한되지 않습니다. 그러나 (github, NuGet)의 많은 구성 작성 Microsoft.Configuration.ConfigurationBuilders
기가 키/값 패턴 내에서 작동합니다.
다음 설정은 .의 모든 키/값 구성 작성기에서 Microsoft.Configuration.ConfigurationBuilders
적용됩니다.
구성 작성기에서는 키/값 정보의 외부 원본을 사용하여 구성 시스템의 선택한 키/값 요소를 채웁니다. 특히, 섹션과 <connectionStrings/>
섹션은 <appSettings/>
구성 작성기로부터 특별한 대우를 받습니다. 빌더는 다음 세 가지 모드로 작동합니다.
Strict
- 기본 모드입니다. 이 모드에서 구성 작성기는 잘 알려진 키/값 중심 구성 섹션에서만 작동합니다.Strict
모드는 섹션의 각 키를 열거합니다. 일치하는 키가 외부 원본에 있는 경우:- 구성 작성기에서 결과 구성 섹션의 값을 외부 원본의 값으로 바꿉니다.
Greedy
- 이 모드는 모드와 밀접한 관련이 있습니다Strict
. 원래 구성에 이미 있는 키로 제한되는 대신 다음을 수행합니다.- 구성 작성기에서 외부 원본의 모든 키/값 쌍을 결과 구성 섹션에 추가합니다.
Expand
- 구성 섹션 개체로 구문 분석되기 전에 원시 XML에서 작동합니다. 문자열에서 토큰의 확장으로 간주할 수 있습니다. 패턴${token}
과 일치하는 원시 XML 문자열의 모든 부분은 토큰 확장 후보입니다. 외부 원본에 해당 값이 없으면 토큰이 변경되지 않습니다. 이 모드의 작성자는 섹션 및<connectionStrings/>
섹션으로<appSettings/>
제한되지 않습니다.
web.config의 다음 태그는 EnvironmentConfigBuilder를 모드에서 Strict
사용하도록 설정합니다.
<configuration>
<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="MyEnvironment"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment,
Version=1.0.0.0, Culture=neutral" />
</builders>
</configBuilders>
<appSettings configBuilders="MyEnvironment">
<add key="ServiceID" value="ServiceID value from web.config" />
<add key="ServiceKey" value="ServiceKey value from web.config" />
</appSettings>
<connectionStrings configBuilders="MyEnvironment">
<add name="default" connectionString="Data Source=web.config/mydb.db" />
</connectionStrings>
다음 코드 <appSettings/>
는 이전 web.config 파일을 읽고 <connectionStrings/>
표시합니다.
using System;
using System.Configuration;
using System.Web.UI;
namespace MyConfigBuilders
{
public partial class About : Page
{
public string ServiceID { get; set; }
public string ServiceKey { get; set; }
public string ConString { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
ServiceID = ConfigurationManager.AppSettings["ServiceID"];
ServiceKey = ConfigurationManager.AppSettings["ServiceKey"];
ConString = ConfigurationManager.ConnectionStrings["default"]
?.ConnectionString;
}
}
}
앞의 코드는 속성 값을 다음으로 설정합니다.
- 키가 환경 변수에 설정되지 않은 경우 web.config 파일의 값입니다.
- 설정된 경우 환경 변수의 값입니다.
예를 들어 다음이 ServiceID
포함됩니다.
- 환경 변수
ServiceID
가 설정되지 않은 경우 "web.config의 ServiceID 값"입니다. - 설정된 경우 환경 변수의
ServiceID
값입니다.
다음 이미지는 환경 편집기에서 설정된 이전 web.config 파일의 키/값을 보여 <appSettings/>
줍니다.
참고: 환경 변수의 변경 내용을 보려면 Visual Studio를 종료하고 다시 시작해야 할 수 있습니다.
키 접두사는 다음과 같은 이유로 키 설정을 간소화할 수 있습니다.
- .NET Framework 구성은 복잡하고 중첩되어 있습니다.
- 외부 키/값 원본은 일반적으로 기본이며 기본적으로 평평합니다. 예를 들어 환경 변수는 중첩되지 않습니다.
환경 변수를 통해 구성에 모두 <appSettings/>
<connectionStrings/>
삽입하려면 다음 방법 중 어느 것을 사용하세요.
EnvironmentConfigBuilder
기본Strict
모드 및 구성 파일의 적절한 키 이름을 사용합니다. 앞의 코드와 태그는 이 방법을 사용합니다. 이 방법을 사용하면 두 키 모두<connectionStrings/>
<appSettings/>
에 동일한 이름의 키를 가질 수 없습니다.- 두 개의
EnvironmentConfigBuilder
s를 모드에서Greedy
고유 접두사 및stripPrefix
. 이 방법을 사용하면 앱에서 구성 파일을 업데이트할 필요 없이 읽을<appSettings/>
<connectionStrings/>
수 있습니다. 다음 섹션인 stripPrefix는 이 작업을 수행하는 방법을 보여줍니다. - 고유한 접두사를 사용하여 모드에서
Greedy
두 개의EnvironmentConfigBuilder
s를 사용합니다. 이 방법을 사용하면 키 이름이 접두사별로 달라야 하기 때문에 중복 키 이름을 가질 수 없습니다. 예시:
<configuration>
<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="AS_Environment" mode="Greedy" prefix="AppSetting_"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment" />
<add name="CS_Environment" mode="Greedy" prefix="ConnStr_"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment" />
</builders>
</configBuilders>
<appSettings configBuilders="AS_Environment">
<add key="AppSetting_ServiceID" value="ServiceID value from web.config" />
<add key="AppSetting_default" value="AppSetting_default value from web.config" />
</appSettings>
<connectionStrings configBuilders="CS_Environment">
<add name="ConnStr_default" connectionString="Data Source=web.config/mydb.db" />
</connectionStrings>
위의 태그를 사용하면 동일한 플랫 키/값 원본을 사용하여 서로 다른 두 섹션에 대한 구성을 채울 수 있습니다.
다음 이미지는 환경 편집기 <appSettings/>
<connectionStrings/>
에서 설정된 이전 web.config 파일의 키/값을 보여 줍니다.
다음 코드는 이전 web.config 파일에 포함된 키/값을 읽습니다.<appSettings/>
<connectionStrings/>
public partial class Contact : Page
{
public string ServiceID { get; set; }
public string AppSetting_default { get; set; }
public string ConString { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
ServiceID = ConfigurationManager.AppSettings["AppSetting_ServiceID"];
AppSetting_default = ConfigurationManager.AppSettings["AppSetting_default"];
ConString = ConfigurationManager.ConnectionStrings["ConnStr_default"]
?.ConnectionString;
}
}
앞의 코드는 속성 값을 다음으로 설정합니다.
- 키가 환경 변수에 설정되지 않은 경우 web.config 파일의 값입니다.
- 설정된 경우 환경 변수의 값입니다.
예를 들어 이전 web.config 파일, 이전 환경 편집기 이미지의 키/값 및 이전 코드를 사용하여 다음 값이 설정됩니다.
키 | 값 |
---|---|
AppSetting_ServiceID | env 변수에서 AppSetting_ServiceID |
AppSetting_default | env의 AppSetting_default 값 |
ConnStr_default | env의 ConnStr_default val |
stripPrefix
: 부울, 기본값: false
.
위의 XML 태그는 앱 설정을 연결 문자열 구분하지만 지정된 접두사를 사용하려면 web.config 파일의 모든 키가 필요합니다. 예를 들어 접두 AppSetting
사를 키에 추가 ServiceID
해야 합니다("AppSetting_ServiceID"). 를 사용하면 stripPrefix
web.config 파일에서 접두사를 사용할 수 없습니다. 접두사는 구성 작성기 원본(예: 환경)에 필요합니다. 대부분의 개발자가 사용할 stripPrefix
것으로 예상합니다.
애플리케이션은 일반적으로 접두사를 제거합니다. 다음 web.config 는 접두사를 제거합니다.
<configuration>
<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="AS_Environment" mode="Greedy" prefix="AppSetting_"
stripPrefix="true"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment,
Version=1.0.0.0, Culture=neutral" />
<add name="CS_Environment" mode="Greedy" prefix="ConnStr_"
stripPrefix="true"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment,
Version=1.0.0.0, Culture=neutral" />
</builders>
</configBuilders>
<appSettings configBuilders="AS_Environment">
<add key="ServiceID" value="ServiceID value from web.config" />
<add key="default" value="AppSetting_default value from web.config" />
</appSettings>
<connectionStrings configBuilders="CS_Environment">
<add name="default" connectionString="Data Source=web.config/mydb.db" />
</connectionStrings>
위의 web.config 파일 default
에서 키는 둘 다 <appSettings/>
에 있습니다 <connectionStrings/>
.
다음 이미지는 환경 편집기 <appSettings/>
<connectionStrings/>
에서 설정된 이전 web.config 파일의 키/값을 보여 줍니다.
다음 코드는 이전 web.config 파일에 포함된 키/값을 읽습니다.<appSettings/>
<connectionStrings/>
public partial class About2 : Page
{
public string ServiceID { get; set; }
public string AppSetting_default { get; set; }
public string ConString { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
ServiceID = ConfigurationManager.AppSettings["ServiceID"];
AppSetting_default = ConfigurationManager.AppSettings["default"];
ConString = ConfigurationManager.ConnectionStrings["default"]
?.ConnectionString;
}
}
앞의 코드는 속성 값을 다음으로 설정합니다.
- 키가 환경 변수에 설정되지 않은 경우 web.config 파일의 값입니다.
- 설정된 경우 환경 변수의 값입니다.
예를 들어 이전 web.config 파일, 이전 환경 편집기 이미지의 키/값 및 이전 코드를 사용하여 다음 값이 설정됩니다.
키 | 값 |
---|---|
ServiceID | env 변수에서 AppSetting_ServiceID |
default | env의 AppSetting_default 값 |
default | env의 ConnStr_default val |
tokenPattern
: 문자열, 기본값: @"\$\{(\w+)\}"
작성기의 동작은 Expand
원시 XML에서 다음과 같은 ${token}
토큰을 검색합니다. 검색은 기본 정규식 @"\$\{(\w+)\}"
으로 수행됩니다. 일치하는 \w
문자 집합은 XML보다 더 엄격하며 많은 구성 원본에서 허용합니다. 토큰 이름에 필요한 문자보다 @"\$\{(\w+)\}"
많은 문자를 사용하는 경우 사용합니다tokenPattern
.
tokenPattern
:문자열:
- 개발자는 토큰 일치에 사용되는 regex를 변경할 수 있습니다.
- 올바른 형식의 위험하지 않은 정규식인지 확인하기 위한 유효성 검사는 수행되지 않습니다.
- 캡처 그룹을 포함해야 합니다. 전체 regex는 전체 토큰과 일치해야 합니다. 첫 번째 캡처는 구성 원본에서 조회할 토큰 이름이어야 합니다.
<add name="Environment"
[mode|prefix|stripPrefix|tokenPattern]
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Environment" />
- 가장 간단한 구성 작성기입니다.
- 환경에서 값을 읽습니다.
- 추가 구성 옵션이 없습니다.
name
특성 값은 임의입니다.
참고: Windows 컨테이너 환경에서 런타임에 설정된 변수는 EntryPoint 프로세스 환경에만 삽입됩니다. 서비스 또는 비 EntryPoint 프로세스로 실행되는 앱은 컨테이너의 메커니즘을 통해 삽입되지 않는 한 이러한 변수를 선택하지 않습니다. IIS/ASP.NET 기반 컨테이너의 경우 현재 버전의 ServiceMonitor.exe DefaultAppPool에서만 처리합니다. 다른 Windows 기반 컨테이너 변형은 비 EntryPoint 프로세스에 대한 자체 주입 메커니즘을 개발해야 할 수 있습니다.
경고
암호, 중요한 연결 문자열 또는 기타 중요한 데이터를 소스 코드에 저장하지 않습니다. 프로덕션 비밀은 개발 또는 테스트에 사용하면 안 됩니다.
<add name="UserSecrets"
[mode|prefix|stripPrefix|tokenPattern]
(userSecretsId="{secret string, typically a GUID}" | userSecretsFile="~\secrets.file")
[optional="true"]
type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.UserSecrets" />
앞의 XML에서 경로는 userSecretsFile
사용 ~/
하거나 ~\
. 예를 들어 경로를 다음과 같이 userSecretsFile="~/secrets.file
작성할 수 있습니다. 자세한 내용은 ConfigurationBuilders Utils 클래스를 참조하세요.
이 구성 작성기에서는 ASP.NET Core Secret Manager와 유사한 기능을 제공합니다.
UserSecretsConfigBuilder는 .NET Framework 프로젝트에서 사용할 수 있지만 비밀 파일을 지정해야 합니다. 또는 프로젝트 파일에서 속성을 정의 UserSecretsId
하고 읽기 위한 올바른 위치에 원시 비밀 파일을 만들 수 있습니다. 외부 종속성을 프로젝트에서 제외하려면 비밀 파일의 형식이 XML로 지정됩니다. XML 서식은 구현 세부 정보이며 형식을 사용해서는 안 됩니다. .NET Core 프로젝트와 secrets.json 파일을 공유해야 하는 경우 SimpleJsonConfigBuilder를 사용하는 것이 좋습니다. SimpleJsonConfigBuilder
.NET Core의 형식도 변경될 수 있는 구현 세부 정보로 간주되어야 합니다.
에 대한 UserSecretsConfigBuilder
구성 특성:
userSecretsId
- XML 비밀 파일을 식별하기 위한 기본 방법입니다. 프로젝트 속성을 사용하여UserSecretsId
이 식별자를 저장하는 .NET Core와 유사하게 작동합니다. 문자열은 고유해야 하며 GUID일 필요는 없습니다. 이 특성을UserSecretsConfigBuilder
사용하면 이 식별자에 속하는 비밀 파일에 대해 잘 알려진 로컬 위치(%APPDATA%\Microsoft\UserSecrets\<UserSecrets Id>\secrets.xml
)를 찾습니다.userSecretsFile
- 비밀을 포함하는 파일을 지정하는 선택적 특성입니다. 시작~
시 문자를 사용하여 애플리케이션 루트를 참조할 수 있습니다. 이 특성 또는userSecretsId
특성이 필요합니다. 둘 다 지정userSecretsFile
되면 우선 적용됩니다.optional
: 부울, 기본값true
- 비밀 파일을 찾을 수 없는 경우 예외를 방지합니다.name
특성 값은 임의입니다.
비밀 파일의 형식은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8" ?>
<root>
<secrets ver="1.0">
<secret name="secret key name" value="secret value" />
</secrets>
</root>
<add name="AzureKeyVault"
[mode|prefix|stripPrefix|tokenPattern]
(vaultName="MyVaultName" |
uri="https:/MyVaultName.vault.azure.net")
[version="secrets version"]
[preloadSecretNames="true"]
type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Azure" />
AzureKeyVaultConfigBuilder는 Azure Key Vault에 저장된 값을 읽습니다.
vaultName
가 필요합니다(자격 증명 모음의 이름 또는 자격 증명 모음에 대한 URI). 다른 특성은 연결할 자격 증명 모음에 대한 제어를 허용하지만 애플리케이션이 작동하는 Microsoft.Azure.Services.AppAuthentication
환경에서 실행되고 있지 않은 경우에만 필요합니다. Azure 서비스 인증 라이브러리는 가능한 경우 실행 환경에서 연결 정보를 자동으로 선택하는 데 사용됩니다. 연결 문자열 제공하여 연결 정보를 자동으로 선택할 수 있습니다.
vaultName
- 제공되지 않은 경우uri
필요합니다. 키/값 쌍을 읽을 Azure 구독의 자격 증명 모음 이름을 지정합니다.uri
- 지정된uri
값을 사용하여 다른 Key Vault 공급자에 연결합니다. 지정하지 않으면 Azure(vaultName
)가 자격 증명 모음 공급자입니다.version
- Azure Key Vault는 비밀에 대한 버전 관리 기능을 제공합니다. 지정된 경우version
작성기는 이 버전과 일치하는 비밀만 검색합니다.preloadSecretNames
- 기본적으로 이 작성기는 키 자격 증명 모음이 초기화될 때 키 자격 증명 모음의 모든 키 이름을 쿼리합니다. 모든 키 값을 읽지 않도록 하려면 이 특성을false
.로 설정합니다. 비밀을 한 번에 하나씩 읽도록false
설정합니다. 자격 증명 모음에서 "가져오기" 액세스를 허용하지만 "나열" 액세스는 허용하지 않는 경우 비밀을 한 번에 하나씩 읽는 것이 유용할 수 있습니다. 참고: 모드preloadSecretNames
를 사용하는Greedy
경우 (기본값)여야true
합니다.
<add name="KeyPerFile"
[mode|prefix|stripPrefix|tokenPattern]
(directoryPath="PathToSourceDirectory")
[ignorePrefix="ignore."]
[keyDelimiter=":"]
[optional="false"]
type="Microsoft.Configuration.ConfigurationBuilders.KeyPerFileConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.KeyPerFile" />
KeyPerFileConfigBuilder는 디렉터리의 파일을 값의 원본으로 사용하는 기본 구성 작성기 입니다. 파일의 이름이 키이고 내용이 값입니다. 이 구성 작성기에서는 오케스트레이션된 컨테이너 환경에서 실행할 때 유용할 수 있습니다. Docker Swarm 및 Kubernetes와 같은 시스템은 이러한 파일별 키 방식으로 오케스트레이션된 Windows 컨테이너에 제공합니다 secrets
.
특성 세부 정보:
directoryPath
- 필수입니다. 값을 찾을 경로를 지정합니다. Windows 비밀용 Docker는 기본적으로 C:\ProgramData\Docker\secrets 디렉터리에 저장됩니다.ignorePrefix
- 이 접두사로 시작하는 파일은 제외됩니다. 기본값은 “무시”입니다.keyDelimiter
- 기본값은 .입니다null
. 지정된 경우 구성 작성기는 여러 수준의 디렉터리를 트래버스하여 이 구분 기호를 사용하여 키 이름을 작성합니다. 이 값이null
면 구성 작성기는 디렉터리의 최상위 수준만 확인합니다.optional
- 기본값은 .입니다false
. 원본 디렉터리가 없는 경우 구성 작성기에서 오류를 발생시킬지 여부를 지정합니다.
경고
암호, 중요한 연결 문자열 또는 기타 중요한 데이터를 소스 코드에 저장하지 않습니다. 프로덕션 비밀은 개발 또는 테스트에 사용하면 안 됩니다.
<add name="SimpleJson"
[mode|prefix|stripPrefix|tokenPattern]
jsonFile="~\config.json"
[optional="true"]
[jsonMode="(Flat|Sectional)"]
type="Microsoft.Configuration.ConfigurationBuilders.SimpleJsonConfigBuilder,
Microsoft.Configuration.ConfigurationBuilders.Json" />
.NET Core 프로젝트는 구성에 JSON 파일을 자주 사용합니다. SimpleJsonConfigBuilder 작성기를 사용하면 .NET Core JSON 파일을 .NET Framework에서 사용할 수 있습니다. 이 구성 작성기에서는 플랫 키/값 원본에서 .NET Framework 구성의 특정 키/값 영역으로 기본 매핑을 제공합니다. 이 구성 작성기는 계층적 구성을 제공하지 않습니다. JSON 지원 파일은 복잡한 계층 구조 개체가 아닌 사전과 유사합니다. 다단계 계층 파일을 사용할 수 있습니다. 이 공급자 flatten
는 구분 기호로 사용하여 :
각 수준에서 속성 이름을 추가하여 깊이를 지정합니다.
특성 세부 정보:
jsonFile
- 필수입니다. 읽을 JSON 파일을 지정합니다. 시작~
시 문자를 사용하여 앱 루트를 참조할 수 있습니다.optional
- 부울, 기본값은true
. JSON 파일을 찾을 수 없는 경우 예외 throw를 방지합니다.jsonMode
-[Flat|Sectional]
. 기본값은Flat
입니다. 이 경우jsonMode
Flat
JSON 파일은 단일 플랫 키/값 원본입니다.AzureKeyVaultConfigBuilder
단일EnvironmentConfigBuilder
플랫 키/값 원본이기도 합니다. 모드로SimpleJsonConfigBuilder
Sectional
구성된 경우:- JSON 파일은 개념적으로 최상위 수준에서 여러 사전으로 나뉩니다.
- 각 사전은 연결된 최상위 속성 이름과 일치하는 구성 섹션에만 적용됩니다. 예시:
{
"appSettings" : {
"setting1" : "value1",
"setting2" : "value2",
"complex" : {
"setting1" : "complex:value1",
"setting2" : "complex:value2",
}
}
}
aspnet/MicrosoftConfigurationBuilders GitHub 리포지토리에서 ConfigurationBuilders 실행 순서를 참조하세요.
구성 작성기에서 요구 사항을 충족하지 않는 경우 사용자 지정 작성기를 작성할 수 있습니다. 기본 클래스는 KeyValueConfigBuilder
대체 모드 및 대부분의 접두사 문제를 처리합니다. 구현 프로젝트에는 다음만 필요합니다.
- 기본 클래스에서 상속하고 다음을 통해 키/값 쌍의 기본 원본을
GetValue
GetAllValues
구현합니다. - 프로젝트에 Microsoft.Configuration.ConfigurationBuilders.Base를 추가합니다.
using Microsoft.Configuration.ConfigurationBuilders;
using System.Collections.Generic;
public class MyCustomConfigBuilder : KeyValueConfigBuilder
{
public override string GetValue(string key)
{
// Key lookup should be case-insensitive, because most key/value collections in
// .NET Framework config sections are case-insensitive.
return "Value for given key, or null.";
}
public override ICollection<KeyValuePair<string, string>> GetAllValues(string prefix)
{
// Populate the return collection.
return new Dictionary<string, string>() { { "one", "1" }, { "two", "2" } };
}
}
기본 클래스는 KeyValueConfigBuilder
키/값 구성 작성기에서 많은 작업과 일관된 동작을 제공합니다.