Comment puis-je récupérer ApplicationSettings chargées à partir de l'App.fichier de config?
Est-il possible d'accéder aux valeurs de la applicationSettings section d'un chargé de l'app.fichier de config?
J'ai trouvé un exemple Comment puis-je récupérer appSettings, mais je ne trouve pas comment accéder à applicationSettings de cette façon.
Je sais, c'est il y a longtemps, mais pourriez-vous la marque de la réponse qui vous semble la plus utile, s'il vous plaît?
OriginalL'auteur al-bex | 2010-01-20
Vous devez vous connecter pour publier un commentaire.
Le applicationSettings readonly au cours de l'exécution. Vous pouvez définir/modifier soit par l'intermédiaire d'un éditeur de texte dans l'application.fichier de configuration directement, mais il est recommandé d'ouvrir les propriétés du projet dans Visual Studio et sélectionnez l'onglet "Paramètres". Il est important de définir le droit de la portée:
Par exemple, si vous créez myOwnSetting dans votre projet WindowsFormsTestApplication1 comme suit:
il va ajouter les éléments suivants à l'application.fichier de configuration:
Visual Studio crée le code C# pour accéder à ce réglage automatiquement (c'est pourquoi vous devez le faire dans les propriétés du projet et non pas via l'éditeur de texte) - après avoir enregistré les modifications, à l'intérieur du même espace de noms, vous pouvez lire sa valeur dans l'application facilement via le code suivant:
Compte tenu de la
applicationSettings
dans la liste ci-dessus, ce serait de récupérer la chaîne de caractères "Bonjour!" à la variablecurrentValue
.Note que si vous avez créé myOwnSetting pour la "Utilisateur" portée, puis il est stocké dans une section nommée
<userSettings>
au lieu de<applicationSettings>
, mais vous pouvez toujours y accéder avec la ligne de code ci-dessus.Une autre différence de champ "Utilisateur" paramètres, c'est que vous avez accès en lecture-écriture, c'est à dire qu'il est autorisé à effectuer les opérations suivantes:
Si vous essayez la même chose avec la "Demande" définition de la portée du myOwnSetting, le résultat serait une erreur de compilation de vous dire qu'il est en lecture seule.
Si vous re-démarrer l'application, vous remarquerez que myUserSetting a changé à la valeur "autre Chose" - mais l'ancienne valeur est toujours dans l'application.config. Pourquoi est-ce donc? La raison en est qu'il est considéré comme une valeur par défaut - et comme je l'ai dit plus tôt, "l'Utilisateur" champ d'application est liée au profil de l'utilisateur. En conséquence, la valeur "autre Chose" est stocké dans
dans un fichier nommé
User.config
, qui se présente comme suit:Vous ne pouvez pas dire exactement le chemin comme il est créé automatiquement par le .NET Framework, et elle sera différente sur votre PC. Mais vous pouvez voir que le nom d'utilisateur est l'ID d'utilisateur Windows de votre compte courant, FIRMNAME est une partie de l'assemblée de l'information que vous avez spécifié, et le nom de l'assemblage et la version est également utilisé dans le chemin.
Remarque:
La
<sectionGroup>
avec<section>
déclaration est obligatoire et son nom de l'attribut doit correspondre avec l'espace de noms. L'espace de noms doivent apparaître exactement une fois dans la configuration, et il y a un seulapplicationSettings
section autorisés.Comme vous avez pu le voir dans le fichier de configuration, l'espace de noms est mentionné explicitement (
WindowsFormsTestApplication1.Properties.Settings
). En conséquence, si vous souhaitez accéder aux paramètres de code qui n'est pas dans le même espace de noms que vous pourriez avoir besoin d'utiliser une référence complète. Cela dit, soyez prudent si vous copiez l'intégralité de la<applicationSettings>...</applicationSettings>
section à partir d'une application de configuration à un autre, vous pourriez avoir besoin de changer l'espace de noms dans la cible config par la suite.Si vous utilisez les Paramètres de Designer (onglet Paramètres de votre projet), il va créer un fichier nommé
Settings.Settings
(avecSettings.Designer.cs
pour accéder à la sessings via le code C#) dans la section Propriétés de votre projet. C'est une copie des paramètres comme il sera stocké dans votreWeb.config
ouApp.config
fichier (selon votre type de projet, uniquement pour l'application paramètres de l'utilisateur champ d'application, les paramètres sont stockés en fonction du profil utilisateur). Vous pouvez créer d'autres*.settings
fichiers et de les utiliser (comme il est décrit ici).Si vous êtes pas en utilisant les paramètres de designer, ou si vous êtes en utilisant un outil comme LinqPad, vous pourriez avoir besoin d'utiliser une approche différente. Considérez ceci:
Vous pouvez lire une chaîne de type
applicationSettings
par le traitement de la configuration commeXDocument
. L'exemple donné est limitée au type de chaîne et vous pouvez récupérer le paramètre de l'application.config exemple ci-dessus comme suit:var value=GetApplicationSetting("myOwnSetting", "WindowsFormsTestApplication1.Properties.Settings");
De même, vous pouvez créer une fonction similaire GetUserSetting par défaut
<userSettings>
l'article: il suffit de copier le code ci-dessus, renommer le nom de la fonction et de la remplacerapplicationSettings
dans lexPathStr
paruserSettings
.Il y a une méthode de mise à niveau disponible pour les paramètres de l'utilisateur, qui est décrit ici. Plus de détails sur l'endroit où les paramètres de l'utilisateur sont stockées peuvent être trouvés il y.
Le
<appSettings>
dans la section de configuration fonctionne différemment, car il ne fait pas de distinction "Utilisateur" et "Application" champ d'application et il ne prend pas en charge les différents types de données, seulement des chaînes de caractères. Toutefois, il est possible de facilement lecture et d'écriture la configuration de clés/valeurs.Si vous êtes intéressé dans le code, vous pouvez le trouver ici (sur stackoverflow):
comment lire/écrire des paramètres de configuration de appSettings
Si vous n'êtes pas sûr si vous devez utiliser
AppSettings
ouapplicationSettings
, puis lire ce avant de vous décider.OriginalL'auteur Matt
Comment avez-vous créez les paramètres? À l'aide de la VS les paramètres de designer? Si il devrait donc créer une classe fortement typée pour y accéder. C'est généralement accessible à l'aide de
Properties.Settings.Default.SettingName
Je pense qu'il est préférable d'utiliser la applicationSettings plutôt que appSettings, mais les paramètres de l'application sont en lecture seule lors de l'exécution, c'est à dire vous ne pouvez pas les créer à partir de votre code, mais il est possible de créer et d'ajouter appSettings au moment de l'exécution, je crois. J'ai posé une question à propos de la différence
vous pouvez trouver plus d'informations à partir de msdn
OriginalL'auteur Sam Holder
Vous pouvez charger le fichier de config dans XmlDocument et retrive la applicationSettings
à partir de l'objet dom .
Voici l'exemple que j'ai trouvé pour charger le fichier de config dans le dom objet :
OriginalL'auteur golan