2010-03-23 6 views
10

Je souhaite enregistrer certaines données personnalisées dans le fichier de configuration de l'application et j'ai besoin de créer des sections personnalisées dans app.config. La lecture de données personnalisées à partir de app.config est une tâche simple, mais je ne peux pas écrire les informations de mon programme dans app.config. Pour trouver une solution à ce problème, je crée un projet de test.Ecriture de sections personnalisées dans app.config

Pour la lecture des données de app.config section personnalisée nous avons utilisé les de cet article:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

Répondre

4

Première dérogation IsReadyOnly() dans votre CustomConfigSection pour revenir faux.

Une fois que vous avez fait que vous devriez être en mesure de faire quelque chose comme ça (ce qui est pour ASP.NET, mais il pourrait être transferably):

System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

Donnez qu'un essai.

+2

Voulez-vous dire override 'IsReadOnly()' pour retourner 'false'? – FrustratedWithFormsDesigner

+0

Oui. Je suis un wally. Edité – Pike65

+0

Merci beaucoup! C'est très simple et très utile! –

5

Vous ne devriez vraiment rien écrire à app.config, car si vous le faites, vous limitez l'utilisation de votre application aux seuls administrateurs. Il est préférable d'écrire les paramètres dans un fichier .config distinct situé dans un dossier de profil utilisateur, par ex. <profiles>\<user name>\Application Data\<your product name>.

+0

Merci. Je pense que l'utilisateur de l'application n'a besoin de lire et d'écrire que des permissions. Si j'ai tort, corrigez-moi s'il vous plaît. –

+1

Pour clarifier: le fichier 'app.config' est installé dans un dossier sous Program Files. Par défaut, il est configuré pour ne pas autoriser l'accès en écriture aux utilisateurs standard. Bien que .NET vous permettra heureusement d'écrire dans n'importe quel fichier '.config' via l'API de configuration normale, si vous l'essayez réellement en tant qu'utilisateur standard, vous obtiendrez une exception de sécurité. –

+0

Merci. Je m'en souviendrai. Je vais utiliser oportunity pour écrire dans app.config pour mes services Windows pas pour l'application de bureau. –