[.net] Windows Forms C # 응용 프로그램에서 구성 파일을 사용하는 가장 간단한 방법

저는 .NET을 처음 접했지만 여전히 구성 파일이 작동하는 방식에 대해 이해하지 못했습니다.

Google에서 검색 할 때마다 web.config에 대한 결과가 표시되지만 Windows Forms 애플리케이션을 작성하고 있습니다.

System.Configuration 네임 스페이스를 사용해야한다는 것을 알아 냈지만 설명서가 도움이되지 않습니다.

내 구성 파일이 XYZ.xml임을 어떻게 정의합니까? 아니면 구성 파일의 “기본”이름이 있습니까? 인식하지 못했습니다.

또한 새 섹션을 어떻게 정의합니까? ConfigurationSection에서 상속하는 클래스를 만들어야합니까?

다음과 같은 값을 가진 구성 파일을 갖고 싶습니다.

<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>

간단한 방법이 있습니까? 간단한 구성 파일을 읽고 쓰는 방법을 간단한 방법으로 설명 할 수 있습니까?



답변

App.Config를 사용하려고합니다.

프로젝트에 새 항목을 추가하면 애플리케이션 구성 파일이라는 것이 있습니다. 그것을 추가하십시오.

그런 다음 구성 / 앱 설정 섹션에 키를 추가합니다.

처럼:

<configuration>
 <appSettings>
  <add key="MyKey" value="false"/>

다음을 수행하여 회원 액세스

System.Configuration.ConfigurationSettings.AppSettings["MyKey"];

이것은 .NET 2 이상에서 작동합니다.


답변

이전 답변에 대한 설명 …

  1. 프로젝트에 새 파일 추가 ( 추가새 항목애플리케이션 구성 파일 )

  2. 새 구성 파일은 솔루션 탐색기에 App.Config 로 나타납니다 .

  3. 다음을 템플릿으로 사용하여이 파일에 설정을 추가합니다.

    <configuration>
      <appSettings>
        <add key="setting1" value="key"/>
      </appSettings>
      <connectionStrings>
        <add name="prod" connectionString="YourConnectionString"/>
      </connectionStrings>
    </configuration>
    
  4. 다음과 같이 검색하십시오.

    private void Form1_Load(object sender, EventArgs e)
    {
        string setting = ConfigurationManager.AppSettings["setting1"];
        string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
    }
    
  5. 빌드되면 출력 폴더에 <assemblyname> .exe.config라는 파일이 포함됩니다. 이것은 App.Config 파일 의 복사본입니다 . 이 파일을 만들기 위해 개발자가 더 이상 작업을 수행 할 필요가 없습니다.


답변

이전 답변을 빠르게 읽어 보면 정확 해 보이지만 Visual Studio 2008의 새로운 구성 기능에 대해 언급 한 사람은없는 것 같습니다. 여전히 app.config (컴파일시 YourAppName.exe.config에 복사 됨)를 사용합니다. 그러나 속성을 설정하고 유형을 지정하는 UI 위젯이 있습니다. 프로젝트의 “Properties”폴더에서 Settings.settings 를 두 번 클릭 합니다.

가장 좋은 부분은 코드에서이 속성에 액세스하는 것이 형식 안전하다는 것입니다. 컴파일러는 속성 이름을 잘못 입력하는 것과 같은 명백한 실수를 포착합니다. 예를 들어 app.config의 MyConnectionString이라는 속성 은 다음과 같이 액세스됩니다.

string s = Properties.Settings.Default.MyConnectionString;


답변

App.config 파일을 만들어야 합니다 ( web.config 와 매우 유사 ).

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새 항목을 추가 한 다음 새 “응용 프로그램 구성 파일”을 선택해야합니다 .

프로젝트에서 System.Configuration을 사용하여 추가했는지 확인하십시오.

그런 다음 여기에 값을 추가 할 수 있습니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="setting1" value="key"/>
  </appSettings>
  <connectionStrings>
    <add name="prod" connectionString="YourConnectionString"/>
  </connectionStrings>
</configuration>

    private void Form1_Load(object sender, EventArgs e)
    {
        string setting = ConfigurationManager.AppSettings["setting1"];
        string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
    }

참고 사항 : Microsoft에 따르면 ConfigurationSettings 대신 ConfigurationManager를 사용해야합니다 (설명 섹션 참조).

“ConfigurationSettings 클래스는 이전 버전과의 호환성 만 제공합니다. 새 응용 프로그램의 경우 대신 ConfigurationManager 클래스 또는 WebConfigurationManager 클래스를 사용해야합니다.”


답변

구성 파일의 기본 이름은 [yourexe] .exe.config입니다. 따라서 notepad.exe에는 프로그램과 동일한 폴더에 notepad.exe.config라는 구성 파일이 있습니다. 이것은 CLR 및 프레임 워크의 모든 측면에 대한 일반 구성 파일이지만 <appSettings>노드 아래에 고유 한 설정을 포함 할 수 있습니다 .

<appSettings>요소로 액세스 할 수있는 이름 값 쌍의 컬렉션을 생성한다 System.Configuration.ConfigurationSettings.AppSettings. 그러나 변경 사항을 구성 파일에 다시 저장할 수있는 방법은 없습니다.

구성 파일 IConfigurationSectionHandler<configSections>요소에 이를 구현 하고 추가 하는 클래스를 만들어 구성 파일에 사용자 정의 요소를 추가 할 수도 있습니다 (예 : 구조화 된 설정 정의) . 그런 다음을 호출하여 액세스 할 수 있습니다 ConfigurationSettings.GetConfig.

.NET 2.0 System.Configuration.ConfigurationManager은 사용자 별 시스템 데이터 재정의와 함께 여러 파일을 지원 하는 새 클래스를 추가합니다 . 또한 수정 된 구성을 설정 파일에 다시 저장할 수 있습니다.

Visual Studio App.config는 프로젝트가 빌드 될 때 올바른 이름으로 EXE 폴더에 복사되는 라는 파일을 만듭니다 .


답변

.NET 애플리케이션 구성에 대한 최고의 (IMHO) 기사는 CodeProject, Unraveling the Mysteries of .NET 2.0 Configuration에 있습니다. .NET 구성 파일의 섹션에 대한 다음으로 가장 좋아하는 (짧은) 기사는 섹션 처리기 이해-App.config 파일 입니다.


답변

Windows Forms에는 app.config파일과 매우 유사한 web.config파일이 있습니다. 그러나 필요한 것은 사용자 정의 값이므로 Settings를 사용하는 것이 좋습니다 .

이렇게하려면 프로젝트 속성을 열고 설정으로 이동합니다. 설정 파일이없는 경우이를 만들 수있는 링크가 있습니다. 그런 다음 거기에 표시되는 테이블에 설정을 추가하면 적절한 XML과 설정 을로드하고 저장하는 데 사용할 수 있는 Settings 클래스가 모두 생성 됩니다.

설정 클래스의 이름은 DefaultNamespace.Properties.Settings. 그런 다음 다음과 유사한 코드를 사용할 수 있습니다.

using DefaultNamespace.Properties;

namespace DefaultNamespace {
    class Class {
        public int LoadMySettingValue() {
            return Settings.Default.MySettingValue;
        }
        public void SaveMySettingValue(int value) {
            Settings.Default.MySettingValue = value;
        }
    }
}