Language/C# WPF

[C#] ConfigurationManager.AppSettings 사용하기

멱군 2014. 11. 10. 14:08

C# 프로그래밍을 하다 보면 애플리케이션의 구성 설정을 파일에서 읽어와야 할 때가 있습니다. 이때 ConfigurationManager.AppSettings를 사용하면 손쉽게 구성 설정 값을 읽어올 수 있습니다. 하지만 때로는 오류가 발생하거나 예상대로 작동하지 않는 경우가 있습니다. 이러한 상황에서 MSDN에서 제안하는 대안적인 방법을 사용할 수 있습니다.

 

 

NameValueCollection 사용하기

ConfigurationManager.AppSettings를 사용하기 위해서는 먼저 System.Configuration 어셈블리를 참조에 추가해야 합니다. 이 과정은 프로젝트의 참조 설정에서 진행할 수 있습니다.

 

단계별 설정 방법

1. 어셈블리 참조 추가

솔루션 탐색기에서 프로젝트를 우클릭하고 [참조 추가]를 선택합니다.

[어셈블리] 탭에서 System.Configuration을 검색하고 체크한 다음 [확인]을 클릭하여 추가합니다.

2. 네임스페이스 사용 선언

파일 상단에 using System.Configuration;을 추가하여 ConfigurationManager 클래스에 쉽게 접근할 수 있도록 합니다.

3. 구성 설정 값 읽기

구성 파일(App.config 또는 Web.config)에 설정된 키와 값을 읽어오기 위한 함수를 구현합니다.

아래는 특정 섹션 이름의 값을 읽어오는 예제 함수입니다.

using System.Collections.Specialized;
using System.Configuration;

public class ConfigManager
{
    public static string GetConfigValue(string sectionName)
    {
        string sectionValue = "";
        NameValueCollection appSettings = ConfigurationManager.AppSettings;

        for (int i = 0; i < appSettings.Count; i++)
        {
            if (appSettings.GetKey(i).Equals(sectionName))
            {
                sectionValue = appSettings[i];
                break;
            }
        }

        return sectionValue;
    }
}

이 함수는 주어진 섹션 이름에 해당하는 값을 찾아 string 형태로 반환합니다.

반환된 string 값은 필요에 따라 적절한 타입으로 변환하여 사용할 수 있습니다.

예를 들어, 반환된 값을 int로 변환하려면 int.Parse() 메서드를 사용할 수 있습니다.

 

사용 예제

구성 파일(App.config)에 다음과 같이 설정이 추가되어 있다고 가정해 보겠습니다.

<appSettings>
    <add key="MaxUserCount" value="100"/>
</appSettings>

애플리케이션에서 이 값을 읽어오려면 다음과 같이 호출합니다.

int maxUserCount = int.Parse(ConfigManager.GetConfigValue("MaxUserCount"));

이 방법을 통해 C# 애플리케이션에서 구성 설정 값을 손쉽게 읽어오고 활용할 수 있습니다.

ConfigurationManager.AppSettings의 사용이 어려울 때는 위에서 설명한 대로 NameValueCollection을 사용하는 방법을 시도해 보세요.

 

결론

C#에서 ConfigurationManager.AppSettings를 사용하여 애플리케이션의 구성 설정을 관리하는 것은 강력하고 유용한 방법입니다.

하지만 때때로 개발자는 설정 값을 읽어오는 과정에서 오류에 직면할 수 있습니다.

이러한 상황에서 System.Configuration 어셈블리를 참조에 추가하고, NameValueCollection을 활용하는 방식은 훌륭한 대안이 될 수 있습니다.

이 방법을 통해 개발자는 구성 파일에서 설정 값을 쉽고 안정적으로 읽어올 수 있으며, 읽어온 값은 필요에 따라 다양한 타입으로 변환하여 사용할 수 있습니다.

참고글

msdn에 나온 사용법 참고

 

ConfigurationSettings.AppSettings Property (System.Configuration)

Gets a read-only collection of the application settings from the configuration file.

learn.microsoft.com