방법: 응용 프로그램 설정 만들기
업데이트: 2007년 11월
관리 코드를 사용하면 새 응용 프로그램 설정을 만들고 이 설정이 런타임에 자동으로 로드되고 저장될 수 있도록 폼이나 폼 컨트롤의 속성에 바인딩할 수 있습니다.
다음 절차에서는 ApplicationSettingsBase에서 파생되는 래퍼 클래스를 수동으로 만듭니다. 노출할 각 응용 프로그램 설정에 대한 공용으로 액세스 가능한 속성을 이 클래스에 추가합니다.
Visual Studio 디자이너에서 최소한의 코드를 사용하여 이 절차를 수행할 수도 있습니다.
새 응용 프로그램 설정을 프로그래밍 방식으로 만들려면
프로젝트에 새 클래스를 추가하고 클래스 이름을 바꿉니다. 이 절차에서는 클래스 이름을 MyUserSettings로 지정합니다. ApplicationSettingsBase에서 클래스가 파생되도록 클래스 정의를 변경합니다.
이 래퍼 클래스에서 필요한 각 응용 프로그램 설정에 대한 속성을 정의하고 설정 범위에 따라 ApplicationScopedSettingAttribute 또는 UserScopedSettingAttribute와 함께 해당 속성을 적용합니다. 설정 범위에 대한 자세한 내용은 응용 프로그램 설정 개요를 참조하십시오. 코드는 다음과 같습니다.
Imports System.Configuration Public Class MyAppSettings Inherits ApplicationSettingsBase <UserScopedSetting()> _ <DefaultSettingValue("white")> _ Public Property BackgroundColor() As Color Get BackgroundColor = Me("BackgroundColor") End Get Set(ByVal value As Color) Me("BackgroundColor") = value End Set End Property End Class
using System; using System.Configuration; using System.Drawing; public class MyUserSettings : ApplicationSettingsBase { [UserScopedSetting()] [DefaultSettingValue("white")] public Color BackgroundColor { get { return ((Color)this["BackgroundColor"]); } set { this["BackgroundColor"] = (Color)value; } } }
응용 프로그램에서 이 래퍼 클래스의 인스턴스를 만듭니다. 일반적으로 이 인스턴스는 기본 폼의 전용 멤버가 됩니다. 클래스를 정의한 다음에는 클래스를 속성에 바인딩해야 합니다. 이 경우에는 폼의 BackColor 속성에 바인딩해야 합니다. 폼의 Load 이벤트 처리기에서 바인딩할 수 있습니다.
Dim Mus As MyAppSettings Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Mus = New MyAppSettings() Mus.BackgroundColor = Color.AliceBlue Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor")) End Sub
MyUserSettings mus; private void Form1_Load(object sender, EventArgs e) { mus = new MyUserSettings(); mus.BackgroundColor = Color.AliceBlue; this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor")); }
런타임에 설정을 변경할 방법을 제공할 경우 폼을 닫을 때 사용자의 현재 설정을 디스크에 저장해야 합니다. 저장하지 않으면 이 변경 내용이 손실됩니다.
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Mus.Save() End Sub
이제 새 응용 프로그램 설정을 만들어 지정한 속성에 바인딩했습니다.
보안
기본 설정 공급자인 LocalFileSettingsProvider는 구성 파일에 대한 정보를 일반 텍스트로 유지합니다. 따라서 현재 사용자를 위해 운영 체제에서 제공하는 파일 액세스 보안만 적용됩니다. 이런 이유 때문에 구성 파일에 저장된 정보를 처리할 때는 주의해야 합니다. 예를 들어, 응용 프로그램 설정을 사용하는 일반적인 경우 중 하나는 응용 프로그램의 데이터 저장소를 가리키는 연결 문자열을 저장하는 것입니다. 그러나 보안 문제 때문에 이러한 문자열에는 암호를 포함하면 안 됩니다. 연결 문자열에 대한 자세한 내용은 SpecialSetting을 참조하십시오.