[C#] 환경설정 파일을 다루는 방법(System.Configuration)


Development note/C#  2019. 6. 26. 09:00

안녕하세요. 명월입니다.


이 글은 C#에서 환경 설정 파일을 다루는 방법(System.Configuration)에 대한 글입니다.


프로그램을 작성하면서 유저로 부터 환경 설정을 받아야 하는 경우가 있습니다. 예를 들면 웹 환경에서 log파일 저장 위치라던가, 기타 프로그램 내에서 사용할 만한 데이터 등등입니다.

예전에는 C++에서는 ini파일을 환경 설정 파일로 자주 사용했습니다. 물론 C#에서도 ini파일을 사용 못하는 건 아닙니다. 이건 다른 글로 소개를 하겠습니다.

그리고 java에서는 .property 파일로 환경 설정 파일로 사용합니다.


C#에서는 app.config를 사용합니다.

먼저 프로젝트를 실행하면 기본적으로 app.config파일은 만들어 집니다.

그리고 먼저 app.config 파일에 값을 설정하고 프로그램 안에서 읽어 오겠습니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <appSettings>
    <add key="TestData" value="Hello world"/>
  </appSettings>
</configuration>

appSettings 태그 안에 add 태그를 추가합니다. 여기서 key어트리뷰트는 프로그램에서 읽어 올 키명이고 value는 값입니다.


config 파일을 읽어 오려면 라이브러리를 추가해야합니다.

(이게 app.config은 기본으로 설정되면서 사용하는 건 기본이 아닙니다...참..)

System.Configuration를 추가합니다.

using System;
using System.Configuration;

namespace Example
{
  class Program
  {
    static void Main(string[] args)
    {
      //App.config 파일에서 작성했던 key명을 여기에 넣습니다.
      String data = ConfigurationManager.AppSettings["TestData"];
      // 결과는 Hello world
      Console.WriteLine(data);

      Console.WriteLine("Press any key...");
      Console.ReadKey();
    }
  }
}

ConfigurationManager.AppSettings 함수를 사용해서 Indexer에 키 값을 넣으면 App.config에 설정했던 값을 취득해 올 수 있습니다.


참고로 프로그램을 릴리즈할 때, app.Config 파일 명은 바뀝니다. 프로젝트명.exe.config 형식으로 바뀝니다.

여기까지 C#에서 환경 설정 파일을 다루는 방법(System.Configuration)에 대한 설명이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.