애플리케이션 설정 관리(.NET)
애플리케이션 설정을 사용하면 애플리케이션 정보를 동적으로 저장할 수 있습니다. 애플리케이션 설정을 사용하면 클라이언트 컴퓨터를 사용하여 런타임에 애플리케이션 코드에 포함되지 않아야 하는 정보를 저장할 수 있습니다. 애플리케이션 설정에는 연결 문자열, 사용자 기본 설정 등이 포함될 수 있습니다.
메모
애플리케이션 설정은 이전 버전의 Visual Studio에서 사용된 동적 속성을 대체합니다.
각 애플리케이션 설정에는 고유한 이름이 있어야 합니다. 이름은 문자, 숫자 또는 밑줄의 조합일 수 있습니다. 이름은 숫자로 시작할 수 없으며 공백을 가질 수 없습니다. 이름은 Name
속성을 통해 변경됩니다.
애플리케이션 설정은 XML로 직렬화되거나 ToString
/FromString
구현하는 TypeConverter
있는 모든 데이터 형식으로 저장할 수 있습니다. 가장 일반적인 형식은 String
, Integer
및 Boolean
. 값을 Color, Object또는 연결 문자열로 저장할 수도 있습니다.
애플리케이션 설정에도 값이 있습니다. 값은 Value 속성으로 설정되며 설정의 데이터 형식과 일치해야 합니다.
또한 애플리케이션 설정은 디자인 타임에 폼 또는 컨트롤의 속성에 바인딩할 수 있습니다.
범위에 따라 두 가지 유형의 애플리케이션 설정이 있습니다.
애플리케이션 범위 설정 웹 서비스의 URL 또는 데이터베이스 연결 문자열과 같은 정보에 사용할 수 있습니다. 이러한 값은 애플리케이션과 연결됩니다. 따라서 사용자는 런타임에 변경할 수 없습니다.
사용자 범위 설정 폼의 마지막 위치 또는 글꼴 기본 설정 유지와 같은 정보에 사용할 수 있습니다. 사용자는 런타임에 이러한 값을 변경할 수 있습니다.
Scope 속성을 사용하여 설정 유형을 변경할 수 있습니다.
프로젝트 시스템은 두 개의 XML 파일에 애플리케이션 설정을 저장합니다.
첫 번째 애플리케이션 설정을 만들 때 디자인 타임에 만들어지는 app.config 파일
애플리케이션을 실행하는 사용자가 사용자 설정의 값을 변경할 때 런타임에 만들어지는 user.config 파일
애플리케이션이 특별히 메서드를 호출하지 않는 한 사용자 설정의 변경 내용은 디스크에 기록되지 않습니다.
디자인 단계에서 애플리케이션 설정 만들기
디자인 타임에 두 가지 방법으로 애플리케이션 설정을 만들 수 있습니다.
설정 페이지의 프로젝트 디자이너를 사용합니다.
속성에 설정을 바인딩할 수 있는 폼이나 컨트롤에 속성 창을 사용합니다.
애플리케이션 범위 설정(예: 데이터베이스 연결 문자열 또는 서버 리소스에 대한 참조)을 만들 때 Visual Studio는 <applicationSettings>
태그를 사용하여 app.config 파일에 저장합니다. 연결 문자열은 <connectionStrings>
태그 아래에 저장됩니다.
사용자 범위 설정(예: 기본 글꼴, 홈페이지 또는 창 크기)을 만들 때 Visual Studio는 <userSettings>
태그를 사용하여 app.config 파일에 저장합니다.
중요하다
app.config연결 문자열을 저장하는 경우 연결 문자열에 암호 또는 서버 경로와 같은 중요한 정보가 노출되는 것을 방지하기 위해 주의해야 합니다.
사용자 ID 및 암호를 제공하는 사용자와 같은 외부 원본에서 연결 문자열 정보를 가져오면 연결 문자열을 생성하는 데 사용하는 값에 연결 동작을 변경하는 추가 연결 문자열 매개 변수가 포함되지 않도록 합니다.
보호된 구성 기능을 사용하여 구성 파일의 중요한 정보를 암호화하는 것이 좋습니다. 자세한 내용은 연결 정보 보호참조하세요.
메모
클래스 라이브러리에 대한 구성 파일 모델이 없으므로 클래스 라이브러리 프로젝트에 애플리케이션 설정이 적용되지 않습니다. 예외는 구성 파일을 포함할 수 있는 Visual Studio Tools for Office 런타임 DLL 프로젝트입니다.
사용자 지정된 설정 파일 사용
설정 그룹을 편리하게 관리할 수 있도록 프로젝트에 사용자 지정된 설정 파일을 추가할 수 있습니다. 단일 파일에 포함된 설정은 하나의 단위로 로드되고 저장됩니다. 자주 사용되고 자주 사용되지 않는 그룹에 대해 별도의 파일에 설정을 저장하면 설정을 로드하고 저장하는 데 시간을 절약할 수 있습니다.
예를 들어 SpecialSettings.settings 파일을 프로젝트에 추가할 수 있습니다. 귀하의 SpecialSettings
클래스는 My
네임스페이스에 노출되지 않지만, 코드 보기는 Partial Class SpecialSettings
를 포함한 사용자 지정 설정 파일을 읽을 수 있습니다.
설정 디자이너는 먼저 프로젝트 시스템에서 만드는 Settings.settings 파일을 검색할 있습니다. 이 Settings.settings 파일은 프로젝트 디자이너설정 탭에 표시되는 기본 파일입니다. Settings.settings 파일은 Visual Basic 프로젝트의 내 프로젝트 폴더 및 Visual C# 프로젝트의 속성 폴더에 있습니다. 프로젝트 디자이너는 프로젝트의 루트 폴더에서 다른 설정 파일을 검색할 있습니다. 따라서 사용자 지정 설정 파일을 배치해야 합니다. .settings 파일을 프로젝트의 다른 곳에 추가하면 프로젝트 디자이너 찾을 수 없습니다.
Visual Basic에서 런타임에 애플리케이션 설정 액세스 또는 변경
Visual Basic 프로젝트에서는 My.Settings
개체를 사용하여 런타임에 애플리케이션 설정에 액세스할 수 있습니다.
설정 페이지에서 보기 코드 단추를 선택하여 Settings.vb 파일을 봅니다.
Settings.vb 설정 클래스에서 이러한 이벤트를 처리할 수 있는 Settings
클래스를 정의합니다.
Settings.vbSettings
클래스는 생성된 전체 클래스가 아닌 사용자 소유 코드만 표시하는 부분 클래스입니다.
My.Settings
개체를 사용하여 애플리케이션 설정에 액세스하는 방법에 대한 자세한 내용은 Access 애플리케이션 설정(.NET Framework)참조하세요.
사용자가 런타임에 변경하는 사용자 범위 설정의 값(예: 폼의 위치)은 user.config 파일에 저장됩니다. 기본값은 여전히 app.config저장됩니다.
예를 들어 애플리케이션 테스트와 같이 런타임 중에 사용자 범위 설정이 변경되고 이러한 설정을 기본값으로 다시 설정하려는 경우 동기화 단추를 선택합니다.
My.Settings
개체와 기본 .settings 파일을 사용하여 설정에 액세스하는 것이 좋습니다.
설정 디자이너 사용하여 설정에 속성을 할당할 수 있으며 애플리케이션이 종료되기 전에 사용자 설정이 자동으로 저장됩니다. 그러나 Visual Basic 애플리케이션은 설정에 직접 액세스할 수 있습니다. 이 경우 MySettings
클래스에 액세스하고 프로젝트의 루트에서 사용자 지정 .settings 파일을 사용해야 합니다. 다음 섹션에 설명된 대로 C# 애플리케이션과 마찬가지로 애플리케이션을 종료하기 전에 사용자 설정을 저장해야 합니다.
C에서 런타임에 애플리케이션 설정 액세스 또는 변경#
C#과 같은 Visual Basic 이외의 언어에서는 다음 Visual C# 예제와 같이 Settings
클래스에 직접 액세스해야 합니다.
Properties.Settings.Default.FirstUserSetting = "abc";
사용자 설정을 유지하려면 이 래퍼 클래스의 Save
메서드를 명시적으로 호출해야 합니다. 일반적으로 기본 폼의 Closing
이벤트 처리기에서 이 작업을 수행합니다. 다음 C# 예제에서는 Save
메서드에 대한 호출을 보여줍니다.
Properties.Settings.Default.Save();
Settings
클래스를 통해 애플리케이션 설정에 액세스하는 방법에 대한 일반적인 내용은 애플리케이션 설정 개요(.NET Framework)참조하세요.
.NET Framework에서 .NET으로 앱 마이그레이션
.NET Framework는 app.config 파일을 사용하여 연결 문자열 및 로그 공급자 구성과 같은 앱에 대한 설정을 로드합니다. 최신 .NET은 앱 설정에 appsettings.json 파일을 사용합니다. app.config 파일을 appsettings.json변환하는 방법에 대한 자세한 내용은 .NET Framework .NET으로 업그레이드한 후현대화를 참조하세요.