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, öğesinden ApplicationSettingsBasetüretilen bir sarmalayıcı sınıfını 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ım Aracı 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ını MyUserSettingsçağıracağız. Sınıfın öğesinden ApplicationSettingsBasetüretilmiş olması 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 veya UserScopedSettingAttributeile ApplicationScopedSettingAttribute bu özelliği uygulayın. Ayarlar kapsamı hakkında daha fazla bilgi için bkz. Uygulama Ayarlar 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, BackColor formunuzun ö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

Varsayılan ayar sağlayıcısı olan LocalFileSettingsProvider, bilgileri yapılandırma dosyalarına düz metin olarak kalıcı hale ekler. 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ı dizesi depolamaktır. Ancak, güvenlik endişeleri nedeniyle, bu tür dizeler parola içermemelidir. bağlantı dizesi hakkında daha fazla bilgi için bkzSpecialSetting. .

Ayrıca bkz.