다음을 통해 공유


애플리케이션 설정 스키마

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

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

중요합니다

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

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

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

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

<applicationSettings> 요소

이 요소에는 클라이언트 컴퓨터의 애플리케이션 인스턴스와 관련된 모든 <setting> 태그가 포함됩니다. 특성을 정의하지 않습니다.

<userSettings> 요소

이 요소는 현재 애플리케이션을 사용 중인 사용자와 관련된 모든 <setting> 태그를 포함합니다. 특성을 정의하지 않습니다.

<setting> 요소

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

특성 Description
name 필수 사항입니다. 설정의 고유 ID입니다. Visual Studio를 통해 만든 설정은 이름으로 ProjectName.Properties.Settings저장됩니다.
serializeAs 필수 사항입니다. 값을 텍스트로 serialize하는 데 사용할 형식입니다. 유효한 값은 다음과 같습니다.

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

파일 맨 위에 있는 요소 아래에 <configSections> 항목으로 만든 <applicationSettings> 설정의 이름을 추가합니다. 다음은 그 예입니다.

<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> 요소

이 요소에는 설정 값이 포함됩니다.

예시

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

<?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>

참고하십시오