Comment : créer des paramètres d'application
À l'aide de code managé, vous pouvez créer des paramètres d'application et les lier à des propriétés ou des contrôles sur votre formulaire, pour que ces paramètres soient chargés et enregistrés automatiquement au moment de l'exécution.
Dans la procédure suivante, vous allez créer manuellement une classe wrapper qui dérive de ApplicationSettingsBase. Vous ajouterez à cette classe une propriété accessible publiquement pour chaque paramètre d'application que vous souhaitez exposer.
Vous pouvez également appliquer cette procédure avec un minimum de code dans le concepteur Visual Studio. Découvrez également comment : créer une application Paramètres à l’aide du concepteur.
Pour créer des paramètres d'application par programmation
Ajoutez une nouvelle classe à votre projet et renommez-la. Pour cette procédure, nous allons appeler cette classe
MyUserSettings
. Modifiez la définition de la classe pour qu'elle dérive de ApplicationSettingsBase.Définissez une propriété sur cette classe wrapper pour chaque paramètre d'application nécessaire et appliquez cette propriété avec le ApplicationScopedSettingAttribute ou le UserScopedSettingAttribute, selon la portée du paramètre. Pour plus d’informations sur l’étendue des paramètres, consultez Application Paramètres Vue d’ensemble. Votre code doit maintenant ressembler à ce qui suit :
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
Créez une instance de cette classe wrapper dans votre application. Il s'agira généralement d'un membre privé du formulaire principal. Maintenant que vous avez défini votre classe, vous devez la lier à une propriété. Ici, il s'agit de la propriété BackColor de votre formulaire. Vous pouvez effectuer cette opération dans le gestionnaire d’événements de
Load
votre formulaire.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
Si vous proposez une manière de modifier les paramètres au moment de l'exécution, vous devrez enregistrer les paramètres actuels de l'utilisateur sur disque lors de la fermeture de votre formulaire, sinon ces modifications seront perdues.
//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
Vous avez créé un paramètre d'application et vous l'avez lié à la propriété spécifiée.
L’exemple suivant montre un fichier de paramètres d’application qui définit deux paramètres d’étendue d’application et deux paramètres d’étendue utilisateur. Vous devez ajouter les noms des paramètres que vous avez créés en tant qu’entrées sous l’élément <configSections> en haut du fichier.
<?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>
Sécurité du .NET Framework
Le fournisseur de paramètres par défaut, LocalFileSettingsProvider, conserve les informations dans des fichiers de configuration en texte brut. Cela limite la sécurité à la sécurité d'accès de fichier fournie par le système d'exploitation pour l'utilisateur actuel. Pour cette raison, vous devez faire attention aux informations stockées dans les fichiers de configuration. Par exemple, l'une des utilisations courantes des paramètres d'application consiste à stocker des chaînes de connexion qui pointent vers le magasin de données de l'application. Toutefois, pour des raisons de sécurité, ces chaînes ne doivent pas inclure de mots de passe. Pour plus d'informations sur les chaînes de connexion, consultez SpecialSetting.
Voir aussi
.NET Desktop feedback