2010-06-13 4 views
21

Possible en double:
What is the best way to store user settings for a .NET application?Enregistrer les paramètres dans un .NET WinForms application

J'ai trouvé beaucoup d'exemples très différents à la façon dont on pourrait enregistrer les paramètres d'application (par utilisateur) de une application Winforms.

J'imagine que la façon correcte de le faire est très simple en C# et j'espère que quelqu'un peut m'éclairer?

+1

Possible copie de [Quelle est la meilleure façon de stocker les paramètres utilisateur pour une application .NET?] (Http://stackoverflow.com/questions/26369/what-is-the-best-way-to- store-user-settings-for-a-net-application) (Cela doit être l'une des questions les plus dupliquées dans les balises .NET ...) – Aaronaught

+0

Il existe une autre façon d'enregistrer les paramètres dans .Net est [Config4Net] (https://github.com/sontx/config4net) qui est une alternative à la fonctionnalité de paramètres intégrés de .Net. Vous pouvez également afficher l'interface utilisateur de votre configuration pour la modifier au moment de l'exécution, ce qui vous permet de gagner du temps, notamment en créant un formulaire de configuration pour notre application. –

Répondre

60

À un certain point, la réponse se résume à une question de goût. Je dirais que vous vous retrouverez avec au moins ces options:

  • magasin dans le registre, où vous avez la clé HKEY_CURRENT_USER. Tout en dessous est spécifique à l'utilisateur. Ceci est généralement préférable lorsque vous voulez stocker un ensemble de petites paires clé-valeur. Le principal avantage de ce système est que vos paramètres sont faciles à trouver et à partager dans plusieurs applications différentes. Pour suivre ce chemin, vous pouvez commencer à here.
  • en utilisant les paramètres d'application .NET, fournit le moyen le plus simple d'accéder à vos paramètres lors de l'exécution. Encore une fois, il est préférable d'utiliser des paires clé-valeur de données de petite taille. IMO, les principaux avantages de cette méthode est sa simplicité et le fait qu'elle vous permet d'utiliser certaines classes .NET comme valeurs (ne vous obligeant pas à tout convertir en types plus basiques). Pour suivre ce chemin, vous pouvez commencer à here.
  • stockez-le dans les dossiers de données utilisateur, qui sont généralement masqués dans le répertoire de profil de l'utilisateur. Ceci est préférable lorsque vous voulez stocker une grande quantité de données ou n'importe quel nombre de fichiers. Le principal avantage de cette méthode est que vous pouvez manipuler vos données comme vous le feriez avec n'importe quel fichier (ce qui peut aussi être un inconvénient). Pour suivre ce chemin, vous pouvez commencer à here.
+0

Le lien "Utiliser les paramètres de l'application .NET" est désormais rompu – Brett

13

Vous pouvez utiliser l'infrastructure de paramètres fournie par .NET. Dans les pages de propriétés de votre projet, accédez à la page Paramètres et définissez vos paramètres. Vous pouvez définir la portée de chaque paramètre en tant que "Application" ou "Utilisateur". Une classe sera générée automatiquement pour accéder à ces paramètres à partir du code.

Pour les paramètres d'accès Foo et Bar, utilisez:

// Read settings 
textBoxFoo.Text = Properties.Settings.Default.Foo; 

// Write settings 
Properties.Settings.Default.Bar = checkBoxBar.IsChecked; 

// Save settings 
Properties.Settings.Default.Save(); 
+0

Est-ce qu'il n'y a aucun moyen de le faire directement à partir de votre code? C'est-à-dire que vous devez d'abord les paramétrer dans les pages de propriétés des projets? – Jimbo

+0

oui, les paramètres doivent être prédéfinis dans le.Fichier de paramètres –

+1

Les paramètres de portée d'application ne seront pas enregistrés en utilisant ce que je pense. –

1

J'utiliser Application Settings. C'est assez simple et prendra soin de certains problèmes pour vous (comme ne pas avoir accès en écriture au dossier où votre application peut être installée sans accès administratif, ce qui exclut directement l'utilisation de app.config pour vos paramètres).

Questions connexes