App.config - 윈폼 구성파일
윈폼 프로그램은 그 프로그램에서 사용할 옵션들을 실행파일 외부에 텍스트 파일 형태로 저장할 수 있는데, 이를 위해 App.Config 파일을 사용한다. 윈폼 프로젝트를 생성하면 기본적으로 App.config 파일이 생성되는데, 여기에 필요한 옵션들을 지정하면, 실행파일명.config 라는 파일이 자동으로 생성된다. 예를 들어, 실행파일이 TEST.EXE 이면, TEST.EXE.Config 라는 구성 파일이 생성된다.
사용자는 이 구성파일을 텍스트 에디터로 변경하여, 윈폼 프로그램의 실행옵션들을 임의로 지정할 수 있다. 예를 들어, 구성파일에 디폴트 Data Directory를 C:\Data 로 해두었는데, 사용자가 필요에 따라 (실행파일 수정없이) 이를 D:\Temp 으로 변경할 수 있다.
App.Config 파일은 XML (Extensible Markup Language) 형태로 저장되는데, 가장 자주 사용되는 옵션은 appSettings와 connectionStrings 이다. connectionStrings 는 데이타베이스 연결 문자열을 지정하는 데 사용되고, appSettings는 윈폼 프로그램에 필요한 다양한 옵션들을 개발자가 임의로 지정하는데 사용된다. appSettings 밑에 하나 이상의 appSetting 을 지정할 수 있는데, appSetting 에는 옵션명을 지정하는 key와 그 옵션값을 지정하는 value를 함께 지정한다. 예를 들어 아래는 DataDirectory 라는 옵션명에 C:\Data 라는 옵션값을 지정한 예이다.
사용자는 이 구성파일을 텍스트 에디터로 변경하여, 윈폼 프로그램의 실행옵션들을 임의로 지정할 수 있다. 예를 들어, 구성파일에 디폴트 Data Directory를 C:\Data 로 해두었는데, 사용자가 필요에 따라 (실행파일 수정없이) 이를 D:\Temp 으로 변경할 수 있다.
App.Config 파일은 XML (Extensible Markup Language) 형태로 저장되는데, 가장 자주 사용되는 옵션은 appSettings와 connectionStrings 이다. connectionStrings 는 데이타베이스 연결 문자열을 지정하는 데 사용되고, appSettings는 윈폼 프로그램에 필요한 다양한 옵션들을 개발자가 임의로 지정하는데 사용된다. appSettings 밑에 하나 이상의 appSetting 을 지정할 수 있는데, appSetting 에는 옵션명을 지정하는 key와 그 옵션값을 지정하는 value를 함께 지정한다. 예를 들어 아래는 DataDirectory 라는 옵션명에 C:\Data 라는 옵션값을 지정한 예이다.
System.Configuration 참조 추가
윈폼 프로그램 내에서 App.config 파일에 지정된 옵션을 사용하기 위해서는 System.Configuration.ConfigurationManager 클래스를 사용한다. 하지만, System.Configuration은 기본적으로 윈폼프로젝트에 포함되어 있지 않으므로, 사용 전에 이를 References 에서 참조 추가해 주어야 한다. [References] 에서 오른쪽 마우스 버튼을 눌러 [Add Reference] 메뉴를 선택해서 아래 그림과 같이 System.Configuration 어셈블리를 찾아 추가해 준다.
App.Config 프로그램에서 사용
App.Config 에서 지정한 옵션들은 ConfigurationManager 클래스를 통해 사용할 수 있다. 위에서 설명한 것처럼 System.Configuration 어셈블리가 추가한 후, using System.Configuration 네임스페이스를 추가하고, ConfigurationManager 클래스의 AppSettings 속성을 사용하면 간단히 옵션명에 대한 값을 가져올 수 있다. (참고로 ConnectionString의 경우는 ConfigurationManager.ConnectionStrings[] 를 사용한다.) 즉, 아래 예제에서 처럼 ConfigurationManager.AppSettings["옵션명"] 를 실행하여 해당 AppSetting의 옵션값을 불러오면 된다.
예제
using System;
using System.Configuration; // 1. ConfigurationManager 네임스페이스 지정
using System.Windows.Forms;
namespace WinApp
{
public partial class Form1 : Form
{
private string dataDirectory;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 2. AppSettings 에서 DataDirectory 값 읽기
this.dataDirectory = ConfigurationManager.AppSettings["DataDirectory"];
}
}
}
using System.Configuration; // 1. ConfigurationManager 네임스페이스 지정
using System.Windows.Forms;
namespace WinApp
{
public partial class Form1 : Form
{
private string dataDirectory;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 2. AppSettings 에서 DataDirectory 값 읽기
this.dataDirectory = ConfigurationManager.AppSettings["DataDirectory"];
}
}
}
참고 링크 : .NET Configuration 구성 파일