J'ai écrit une classe qui devrait me permettre de lire et d'écrire facilement des valeurs dans les paramètres de l'application: Le problème est la valeur n'est pas vraiment enregistrée, je veux dire que ce n'est pas changé lorsque je quitte l'application et exécutez-la à nouveau. Que puis-je faire pour que la valeur sauvegardée persiste entre la fermeture et l'ouverture à nouveau? P> p>
4 Réponses :
Paramètres La portée doit être l'utilisateur non de l'application p>
Ajouter avant votre réglage dans Paramètres.designer.cs [Global :: System.Configuration.USERSCOPEDsettingAtTribute ()] Ou simplement modifier la portée dans les paramètres1.Settings
Êtes-vous sûr que cela ne sauve pas les modifications? Le fichier [Programnom] .exe.config dans le dossier BIN ne sera pas mis à jour. Le fichier acutal utilisé est généralement placé dans C: \ documents et paramètres \ [utilisateur] \ Paramètres locaux \ Data de l'application \ [Nom de la société] \ [Application] .exe [String Hash] \ [Version] \ user.config code>. Je sais quand j'ai essayé ce genre de chose, il m'a fallu un moment pour réaliser que cela était le fichier qui se mettait à jour. P>
Le fichier que le fichier est mis à jour, ce qui souhaiterait que je voudrais voir la valeur de ComplexValidationsString à définir sur la valeur définie à l'heure précédente, l'application a été ouverte.
Vous devriez vérifier
Properties.Settings.Default.Properties["ComplexValidations"].IsReadOnly
Je viens de tester un paramètre utilisateur et il est persisté si vous exécutez cette application de la console deux fois:
class Program { static void Main(string[] args) { Console.WriteLine(Settings1.Default.Setting); Console.ReadLine(); Settings1.Default.Setting = "A value different from app.config's"; Settings1.Default.Save(); } }
Cela devrait épargner, je ne vois aucun problème avec elle dans mes yeux.