Share via


애플리케이션 설정 스키마

애플리케이션 설정을 사용하면 Windows Forms 또는 ASP.NET 애플리케이션에서 애플리케이션 범위 및 사용자 범위 설정을 저장하고 검색할 수 있습니다. 이 컨텍스트에서 설정은 데이터베이스 연결 문자열에서 사용자가 기본 설정하는 기본 창 크기에 이르기까지 애플리케이션이나 현재 사용자와 관련된 모든 정보입니다.

기본적으로 Windows Forms 애플리케이션의 애플리케이션 설정은 .NET 구성 시스템을 사용하여 설정을 XML 구성 파일에 저장하는 LocalFileSettingsProvider 클래스를 사용합니다. 애플리케이션 설정에서 사용하는 파일에 대한 자세한 내용은 애플리케이션 설정 아키텍처를 참조하세요.

Important

.NET Framework에서 정의한 대부분의 구성 섹션은 .NET 6 이상 및 .NET Core 버전에서 더 이상 작동하지 않습니다. ConfigurationManager 는 호환성을 위해서만 제공됩니다. 최신 .NET은 app.config 대신 앱 설정에 appsettings.json 파일을 사용합니다. .NET Framework에서 .NET으로 업그레이드한 후 현대화를 참조하세요.

app.config에서 사용량을 제거하고 해당 API(사용 가능한 경우)를 호출하여 동일한 설정을 만드는 것이 좋습니다. 자세한 내용은 .NET의 구성을 참조하세요.

애플리케이션 설정은 사용하는 구성 파일의 일부로 다음 요소를 정의합니다.

요소 설명
<applicationSettings> 애플리케이션과 관련된 모든 <setting> 태그를 포함합니다.
<userSettings> 현재 사용자와 관련된 모든 <setting> 태그를 포함합니다.
<setting> 설정을 정의합니다. <applicationSettings> 또는 <userSettings>의 자식 항목입니다.
<value> 설정 값을 정의합니다. <setting>의 자식 항목입니다.

<applicationSettings> 요소

이 요소에는 클라이언트 컴퓨터에 있는 애플리케이션의 인스턴스에 고유한 모든 <setting> 태그가 포함되어 있습니다. 특성 없음을 정의합니다.

<userSettings> 요소

이 요소에는 현재 애플리케이션을 사용하고 있는 사용자에게 고유한 모든 <setting> 태그가 포함되어 있습니다. 특성 없음을 정의합니다.

<setting> 요소

이 요소는 설정을 정의합니다. 다음과 같은 특성을 가지고 있습니다.

attribute Description
이름 필수입니다. 설정의 고유 ID입니다. Visual Studio를 통해 만들어진 설정은 ProjectName.Properties.Settings라는 이름으로 저장됩니다.
serializeAs 필수입니다. 값을 텍스트로 직렬화하는 데 사용할 형식입니다. 유효한 값은 다음과 같습니다.

- string. 이 값은 TypeConverter를 사용하여 문자열로 직렬화됩니다.
- xml. 값은 XML 직렬화를 사용하여 직렬화됩니다.
- binary. 값은 이진 직렬화를 사용하여 텍스트 인코딩된 이진으로 직렬화됩니다.
- custom. 설정 공급자는 이 설정에 대한 고유한 지식을 갖고 있으며 이를 직렬화 및 역직렬화합니다.

애플리케이션에서 <만든 설정의 이름을 추가합니다설정> 파일 맨 위에 있는 configSections> 요소 아래에 <항목으로 추가합니다. 예시:

<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="WindowsFormsApp1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
            <section name="WindowsFormsApp1.Properties.MyCustomSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    ...
</configuration>

<value> 요소

이 요소는 설정 값을 포함합니다.

예시

다음 예에서는 두 개의 애플리케이션 범위 설정과 두 개의 사용자 범위 설정을 정의하는 애플리케이션 설정 파일을 보여 줍니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </sectionGroup>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="Cursor" serializeAs="String">
        <value>Default</value>
      </setting>
      <setting name="DoubleBuffering" serializeAs="String">
        <value>False</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </applicationSettings>
  <userSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="FormTitle" serializeAs="String">
        <value>Form1</value>
      </setting>
      <setting name="FormSize" serializeAs="String">
        <value>595, 536</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </userSettings>
</configuration>

참고 항목