Megosztás a következőn keresztül:


Útmutató: Alkalmazásbeállítások létrehozása

Felügyelt kód használatával új alkalmazásbeállításokat hozhat létre, és az űrlapon vagy az űrlap vezérlőiben lévő tulajdonságokhoz kötheti őket, így ezek a beállítások automatikusan betölthetők és menthetők futásidőben.

Az alábbi eljárásban manuálisan hoz létre egy burkolóosztályt, amely a ApplicationSettingsBase-ból származtatott. Ehhez az osztályhoz minden közzéteendő alkalmazásbeállításhoz nyilvánosan elérhető tulajdonságot kell hozzáadnia.

Ezt az eljárást minimális kóddal is végrehajthatja a Visual Studio tervezőjében. Lásd még : Alkalmazásbeállítások létrehozása a Tervezőhasználatával.

Új alkalmazásbeállítások programozott létrehozása

  1. Adjon hozzá egy új osztályt a projekthez, és nevezze át. Ebben az eljárásban ezt az osztályt MyUserSettingsnevezzük. Módosítsa az osztálydefiníciót úgy, hogy az osztály a ApplicationSettingsBase-ből legyen származtatva.

  2. A meghatározott burkolóosztályhoz hozzon létre egy tulajdonságot minden szükséges alkalmazásbeállításhoz, majd alkalmazza ezt a tulajdonságot a ApplicationScopedSettingAttribute vagy UserScopedSettingAttributejelzéssel a beállítás hatókörétől függően. A beállítások hatóköréről további információt Alkalmazásbeállítások áttekintésecímű témakörben talál. Mostanra a kódnak így kell kinéznie:

    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. Hozzon létre egy példányt ennek a burkolóosztálynak az alkalmazásban. Általában a fő űrlap privát tagja lesz. Most, hogy definiálta az osztályt, egy tulajdonsághoz kell kötnie; ebben az esetben az űrlap BackColor tulajdonsága. Ezt az űrlap Load eseménykezelőjében teheti meg.

    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. Ha módot ad a beállítások futásidőben történő módosítására, akkor az űrlap bezárásakor mentenie kell a felhasználó aktuális beállításait a lemezre, különben ezek a módosítások elvesznek.

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

    Ezzel sikeresen létrehozott egy új alkalmazásbeállítást, és a megadott tulajdonsághoz kötötte.

Az alábbi példa egy alkalmazásbeállításokat tartalmazó fájlt mutat be, amely két alkalmazáshatókörű beállítást és két felhasználó hatókörű beállítást határoz meg. A fájl tetején található <configSections> elem alatti bejegyzésként létrehozott beállítások nevét hozzá kell adnia.

<?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-keretrendszer biztonsága

Az alapértelmezett beállításszolgáltató (LocalFileSettingsProvider) egyszerű szövegként megőrzi az adatokat a konfigurációs fájlokban. Ez korlátozza az operációs rendszer által az aktuális felhasználó számára biztosított fájlhozzáférés biztonságát. Emiatt ügyelni kell a konfigurációs fájlokban tárolt információkra. Az alkalmazásbeállítások egyik gyakori használata például az alkalmazás adattárára mutató kapcsolati sztringek tárolása. Biztonsági okokból azonban az ilyen sztringek nem tartalmazhatnak jelszavakat. A kapcsolati sztringekkel kapcsolatos további információért lásd: SpecialSetting.

Lásd még