Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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.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 ClassHozzon 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
Loadesemé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 SubHa 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 SubEzzel 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
.NET Desktop feedback