가장 간단하게 app.config는 많은 사전 정의 된 구성 섹션이 있으며 사용자 정의 구성 섹션을 지원하는 XML 파일입니다. "구성 섹션"은 일부 유형의 정보를 저장하기위한 스키마가 포함 된 XML 스 니펫입니다.
connectionStrings
또는 같은 내장 구성 섹션을 사용하여 설정을 구성 할 수 있습니다.appSettings
. 사용자 정의 구성 섹션을 추가 할 수 있습니다. 이것은 고급 주제이지만 강력한 형식의 구성 파일을 작성하는 데 매우 강력합니다.
웹 응용 프로그램에는 일반적으로 web.config가 있고 Windows GUI / 서비스 응용 프로그램에는 app.config 파일이 있습니다.
응용 프로그램 수준 구성 파일은 전역 구성 파일 (예 : machine.config)의 설정을 상속합니다.
App.Config에서 읽기
연결 문자열에는 사용할 수있는 미리 정의 된 스키마가 있습니다. 이 작은 스 니펫은 실제로 유효한 app.config (또는 web.config) 파일입니다.
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
app.config를 정의한 후에는 ConfigurationManager 클래스를 사용하여 코드에서 읽을 수 있습니다 . 장황한 MSDN 예제에 겁 먹지 마십시오. 실제로는 매우 간단합니다.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
App.Config에 쓰기
* .config 파일을 자주 변경하는 것은 좋은 생각이 아니지만 일회성 설정 만 수행하려는 것처럼 들립니다.
런타임시 * .config 파일 의 섹션 을 업데이트하는 방법을 설명하는 런타임시 연결 문자열 변경 및 app.config 다시로드를 참조하십시오 connectionStrings
.
이상적인 설치 프로그램에서 이러한 구성 변경을 수행하는 것이 이상적입니다.
런타임시 App.Config의 위치
Q : <value>
app.config에서 수동으로 변경하고 저장 한 다음 닫습니다. 이제 bin 폴더로 이동하여 여기에서 .exe 파일을 시작할 때 적용된 변경 사항이 반영되지 않는 이유는 무엇입니까?
A : 응용 프로그램을 컴파일하면 app.config가 exe와 일치하는 이름으로 bin 디렉토리 1에 복사됩니다 . 예를 들어, exe의 이름이 "test.exe"인 경우 bin 디렉토리에 "text.exe.config"가 있어야합니다. 재 컴파일하지 않고 구성을 변경할 수 있지만 원래 app.config가 아니라 컴파일 타임에 작성된 구성 파일을 편집해야합니다.
1 : web.config 파일은 이동되지 않지만 컴파일 및 배포시 동일한 위치에 유지됩니다. 이에 대한 한 가지 예외는 web.config가 변환 될 때 입니다.
.NET 코어
.NET Core에는 새로운 구성 옵션이 도입되었습니다. * .config 파일의 작동 방식은 변경되지 않았지만 개발자는 새롭고 유연한 구성 패러다임을 자유롭게 선택할 수 있습니다.