Visual C#을 사용하여 애플리케이션 구성 파일에서 사용자 지정 정보 저장 및 검색

이 문서에서는 연결된 애플리케이션에서 런타임 중에 나중에 검색할 수 있는 구성 파일에서 사용자 지정 정보를 저장하는 방법을 소개합니다. 애플리케이션과 연결된 데이터를 정의해야 하는 경우에 유용합니다.

원래 제품 버전: Visual C#
원래 KB 번호: 815786

요구 사항

다음 목록에서는 필요한 권장 하드웨어 및 소프트웨어를 간략하게 설명합니다.

  • Microsoft Windows
  • Visual C#

이 문서에서는 다음 topics 잘 알고 있다고 가정합니다.

  • XML(Extensible Markup Language)
  • .NET 구성 파일

구성 파일을 읽는 콘솔 애플리케이션 만들기

애플리케이션과 연결된 구성 파일에 애플리케이션 설정을 저장할 수 있습니다. 구성 파일은 XML 형식으로 저장됩니다.

.NET Framework 및 System.Collections.Specialized 네임스페이스에는 System.Configuration 런타임 동안 .NET 애플리케이션 구성 파일에서 정보를 검색하는 데 필요한 클래스가 포함됩니다.

런타임 동안 연결된 구성 파일의 내용을 읽는 콘솔 애플리케이션을 만들려면 다음 단계를 수행합니다.

  1. Visual Studio .NET 또는 Visual Studio를 시작합니다.

  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 선택합니다.

  3. 프로젝트 형식에서 Visual C#을 선택한 다음 템플릿에서 콘솔 애플리케이션 선택합니다. 프로젝트 이름을 ConConfig로 지정합니다. 기본적으로 Visual C#은 Program이라는 클래스를 만듭니다.

    참고

    Visual Studio .NET의 프로젝트 형식에서 Visual C# 프로젝트를 선택한 다음 템플릿에서 콘솔 애플리케이션 선택합니다. 프로젝트 이름을 ConConfig로 지정합니다. 기본적으로 Visual C#은 Class1이라는 클래스를 만듭니다.

  4. 솔루션 탐색기 창이 표시되는지 확인합니다. 표시되지 않으면 Ctrl+Alt+L 키 조합을 누릅니다.

  5. 솔루션 탐색기 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 추가를 선택한 다음 새 항목을 선택합니다.

  6. 새 항목 추가 목록에서 XML 파일을 선택합니다.

  7. 이름 텍스트 상자에 App.config입력한 다음, 추가를 선택합니다.

  8. 애플리케이션 구성 파일을 사용하여 키/값 형식으로 저장하는 사용자 지정 애플리케이션 설정을 수집할 수 있습니다. 연결된 구성 파일의 섹션에 <appSettings> 요소를 포함 <add> 할 수 있습니다. 각 키/값 쌍에는 하나의 <add> 요소가 있습니다. <add> 요소의 형식은 다음과 같습니다.

    <add key="Key0" value="0" />
    

    <appSettings></configuration> 태그 사이의 구성 파일에 요소가 있는 <add> 섹션을 <configuration> 추가합니다.

    예를 들어 다음 구성 파일에는 세 개의 <appSettings> 키/값 쌍을 지정하는 섹션이 포함되어 있습니다.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. 솔루션 탐색기Program.cs 두 번 클릭하여 코드 창을 표시합니다. 코드 모듈에 다음 문을 추가합니다.

    참고

    이러한 문은 파일의 다른 문 앞에 나타나야 합니다.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. 다음 단계에 따라 System.Configuration.dll 대한 참조를 추가합니다.

    1. 프로젝트 메뉴에서 참조 추가를 선택합니다.
    2. 참조 추가 대화 상자에서 .NET 탭을 선택합니다.
    3. System.Configuration구성 요소 이름을 찾아 선택합니다.
    4. 확인을 선택합니다.
  11. 구성 파일의 섹션에 있는 <appSettings> 구성 파일 키의 값을 저장하려면 다음과 같이 섹션에서 문자열 변수를 Main 선언합니다.

    string sAttr;
    
  12. 구성 파일의 섹션에서 지정된 키의 <appSettings> 값을 검색하려면 클래스의 속성 메서드를 AppSettingsConfigurationManager 사용합니다Get. 클래스는 ConfigurationManager 네임스페이스에 System.Configuration 있습니다. 메서드가 AppSettings.Get 키를 포함하는 문자열 입력 매개 변수를 받으면 애플리케이션은 키와 연결된 값을 검색합니다.

    다음 코드는 연결된 구성 파일에서 특성 값을 Key0 검색합니다. 그런 다음, 코드는 문자열 변수에 sAttr 이 값을 배치합니다. 이 값에 대한 키가 없으면 에 아무것도 저장되지 sAttr않습니다.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. 애플리케이션이 콘솔 창에서 검색하는 값을 표시하려면 다음과 같이 를 사용합니다 Console.WriteLine .

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. 속성에 대한 하나의 참조를 AppSettings 사용하여 섹션의 모든 키/값 쌍을 검색할 <appSettings> 수 있습니다. 속성을 사용하면 AppSettings 애플리케이션에서 연결된 모든 키/값 쌍을 반환합니다. 이러한 쌍은 형식에 NameValueCollection 저장됩니다. NameValueCollection 에는 애플리케이션이 검색하는 각 키에 대한 키/값 항목이 포함됩니다. 클래스는 NameValueCollection 네임스페이스에 System.Collections.Specialized 있습니다.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. NameValueCollection 속성은 AllKeys 애플리케이션이 검색하는 각 키에 대한 항목이 있는 문자열 배열을 참조합니다. foreach 생성을 사용하여 배열을 반복하여 애플리케이션이 AllKeys 검색하는 각 키에 액세스합니다. 의 AllKeys 각 키 항목은 문자열 데이터 형식입니다.

    생성 내에서 foreach 를 사용하여 Console.WriteLine 콘솔 창에 키와 관련 값을 표시합니다. 애플리케이션이 처리하는 현재 키는 에 있습니다 s. 의 인덱 sAllNameValueCollection 스로 사용하여 연결된 값을 가져옵니다.

     foreach (string s in sAll.AllKeys)
         Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
    
     Console.ReadLine();
    

전체 코드 목록

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

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
                Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));

            Console.ReadLine();
        }
    }
}

참고

이 코드는 .NET Framework 2.0을 대상으로 합니다. .NET Framework 1.0 또는 .NET Framework 1.1을 사용하는 경우 클래스의 모든 인스턴스를 ConfigurationManagerConfigurationSettings변경합니다.

전체 구성 파일 목록(ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

작동하는지 확인합니다.

F5 키를 눌러 코드를 실행합니다. 콘솔 창에는 연결된 구성 파일의 섹션에 <appSettings> 있는 키/값 쌍이 다음과 같이 표시됩니다.

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

문제 해결

  • 구성 파일은 XML 형식으로 저장됩니다. 모든 XML 구문 규칙을 따르는지 확인합니다. XML은 대/소문자를 구분합니다. XML이 잘 구성되지 않았거나 요소의 철자가 틀린 경우 예외가 발생합니다 System.Configuration.Configuration .

    예를 들어 소문자 k 대신 대문자 K가 있는 요소의 <add> 키 특성을 추가하거나 섹션이 소문자 a 대신 대문자 A로 표시되는 <AppSettings> 경우 <appSettings> 오류 메시지가 표시됩니다.

  • 구성 파일은 연결된 애플리케이션과 동일한 폴더에 저장해야 합니다.

  • 구성 파일 이름에 다음 구문을 사용해야 합니다.
    <ApplicationName>.<ApplicationType>.config

    여기서 <ApplicationName> 은 애플리케이션의 이름입니다. <ApplicationType> 은 와 같은 .exe애플리케이션의 형식입니다. 및 .config 는 필수 접미사입니다.

참조