Aracılığıyla paylaş


Nasıl yapılır: Uygulama Ayarları Oluşturma

Yönetilen kodu kullanarak yeni uygulama ayarları oluşturabilir ve bunları formunuzun veya formunuzun denetimlerinde bulunan özelliklere bağlayabilirsiniz; böylece bu ayarlar çalışma zamanında otomatik olarak yüklenir ve kaydedilir.

Aşağıdaki yordamda, ApplicationSettingsBase'den türetilmiş olan bir sarmalayıcı sınıfı el ile oluşturursunuz. Bu sınıfa, kullanıma açmak istediğiniz her uygulama ayarı için genel olarak erişilebilir bir özellik eklersiniz.

Bu yordamı Visual Studio tasarımcısında minimum kod kullanarak da gerçekleştirebilirsiniz. Ayrıca bkz. Nasıl yapılır: TasarımcıKullanarak Uygulama Ayarları Oluşturma.

Program aracılığıyla yeni Uygulama Ayarları oluşturmak için

  1. Projenize yeni bir sınıf ekleyin ve yeniden adlandırın. Bu yordam için bu sınıfı MyUserSettingsolarak adlandıracağız. Sınıfın ApplicationSettingsBase'dan türetilmesi için sınıf tanımını değiştirin.

  2. Bu sarmalayıcı sınıfında ihtiyacınız olan her uygulama ayarı için bir özellik tanımlayın ve ayarın kapsamına bağlı olarak bu özelliği ApplicationScopedSettingAttribute veya UserScopedSettingAttributeile uygulayın. Ayarlar kapsamı hakkında daha fazla bilgi için bkz. Uygulama Ayarlarına Genel Bakış. Kodunuz şu şekilde görünmelidir:

    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;
            }
        }
    }
    
    Imports System.Configuration
    
    Public Class MyUserSettings
        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
    
  3. Uygulamanızda bu sarmalayıcı sınıfının bir örneğini oluşturun. Genellikle ana formun özel bir üyesi olacaktır. Artık sınıfınızı tanımladığınıza göre, bunu bir özelliğe bağlamanız gerekir; bu durumda, formunuzun BackColor özelliği. Bunu formunuzun Load olay işleyicisinde gerçekleştirebilirsiniz.

    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"));
    }
    
    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
  4. Çalışma zamanında ayarları değiştirmek için bir yol sağlarsanız, formunuz kapandığında kullanıcının geçerli ayarlarını diske kaydetmeniz gerekir, aksi takdirde bu değişiklikler kaybolur.

    //Make sure to hook up this event handler in the constructor!
    //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            mus.Save();
        }
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    

    Şimdi başarıyla yeni bir uygulama ayarı oluşturdunuz ve bunu belirtilen özelliğe bağladınız.

Aşağıdaki örnekte, iki uygulama kapsamlı ayarı ve iki kullanıcı kapsamlı ayarı tanımlayan bir uygulama ayarları dosyası gösterilmektedir. Oluşturduğunuz ayarların adlarını, dosyanın üst kısmındaki <configSections> öğesinin altına girdi olarak eklemeniz gerekir.

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

.NET Framework Güvenliği

LocalFileSettingsProvidervarsayılan ayar sağlayıcısı, bilgileri yapılandırma dosyalarına düz metin olarak kaydeder. Bu, güvenliği geçerli kullanıcı için işletim sistemi tarafından sağlanan dosya erişim güvenliğiyle sınırlar. Bu nedenle, yapılandırma dosyalarında depolanan bilgilerle dikkatli olunmalıdır. Örneğin, uygulama ayarlarının yaygın kullanımlarından biri, uygulamanın veri deposuna işaret eden bağlantı dizelerini depolamaktır. Ancak, güvenlik endişeleri nedeniyle, bu tür dizeler parola içermemelidir. Bağlantı dizeleri hakkında daha fazla bilgi için bkz. SpecialSetting.

Ayrıca bakınız