Postupy: Vytvoření nastavení aplikace
Pomocí spravovaného kódu můžete vytvořit nová nastavení aplikace a svázat je s vlastnostmi ve formuláři nebo ovládacích prvcích formuláře, aby se tato nastavení načetla a uložila automaticky za běhu.
V následujícím postupu ručně vytvoříte obálkovou třídu, která je odvozena z ApplicationSettingsBase. Do této třídy přidáte veřejně přístupnou vlastnost pro každé nastavení aplikace, které chcete zveřejnit.
Tento postup můžete provést také pomocí minimálního kódu v návrháři sady Visual Studio. Viz také Jak na to: Vytvoření nastavení aplikace pomocí návrháře.
Programové vytvoření nového nastavení aplikace
Přidejte do projektu novou třídu a přejmenujte ji. Pro účely tohoto postupu nazveme tuto třídu
MyUserSettings
. Změňte definici třídy tak, aby třída byla odvozena z ApplicationSettingsBase.Definujte vlastnost pro tuto obálkovou třídu pro každé požadované nastavení aplikace a použijte tuto vlastnost s ApplicationScopedSettingAttribute nebo UserScopedSettingAttributev závislosti na rozsahu nastavení. Další informace o oboru nastavení naleznete v tématu Přehled nastavení aplikace. Teď by váš kód měl vypadat takto:
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
Vytvořte instanci této třídy obálky ve vaší aplikaci. Obvykle bude soukromým členem hlavního formuláře. Teď, když jste definovali třídu, musíte ji svázat s vlastností; v tomto případě BackColor vlastnost formuláře. Toho můžete dosáhnout v rutině obsluhy události
Load
formuláře.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
Pokud zadáte způsob, jak změnit nastavení za běhu, budete muset při zavření formuláře uložit aktuální nastavení uživatele na disk, jinak se tyto změny ztratí.
//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
Nyní jste úspěšně vytvořili nové nastavení aplikace a vázali ho na zadanou vlastnost.
Následující příklad ukazuje soubor nastavení aplikace, který definuje dvě nastavení s oborem aplikace a dvě nastavení s oborem uživatele. Musíte přidat názvy nastavení, která jste vytvořili jako položky v části <configSections> element v horní části souboru.
<?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>
Zabezpečení rozhraní .NET Framework
Výchozí zprostředkovatel nastavení, LocalFileSettingsProvider, zachovává informace v konfiguračních souborech jako prostý text. Tím se omezí zabezpečení na zabezpečení přístupu k souborům poskytované operačním systémem pro aktuálního uživatele. Z tohoto důvodu je potřeba věnovat pozornost informacím uloženým v konfiguračních souborech. Jedním z běžných použití pro nastavení aplikace je například ukládání připojovacích řetězců, které odkazují na úložiště dat aplikace. Kvůli obavám z zabezpečení by ale tyto řetězce neměly obsahovat hesla. Další informace o připojovacích řetězcích najdete v tématu SpecialSetting.
Viz také
- SpecialSettingAttribute
- LocalFileSettingsProvider
- Přehled nastavení aplikace
- Postupy: Ověření nastavení aplikace
.NET Desktop feedback