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
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.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
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
Ç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.
.NET Desktop feedback