Accéder aux paramètres utilisateur via ConfigurationManager

la programmation


Salut les gars,

Je souhaite lire un paramètre du fichier de paramètres utilisateur local. Je le fais depuis une bibliothèque (par opposition à l’application à laquelle appartiennent les paramètres). Voici mon fichier App.Config réduit :

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="XXX.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <XXX.Properties.Settings>
            <setting name="Language" serializeAs="String">
                <value>English (United Kingdom)</value>
            </setting>
        </XXX.Properties.Settings>
    </userSettings>
</configuration>

Je peux créer une classe de configuration :

System.Configuration.Configuration userConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);

mais je ne suis pas sûr de la meilleure approche pour accéder à la valeur du paramètre Langue. J’ai parcouru le Web sans succès, mais j’ai le sentiment que je devrai peut-être créer une classe personnalisée. J’ai créé des classes de configuration personnalisées dans le passé, mais je me demande s’il existe un moyen plus rapide d’obtenir les paramètres utilisateur.

Solution 1

N’est-ce pas Settings.Default.[SettingNameHere]?

Désolé, j’ai été un peu négligent en lisant la question.

Si l’autre assembly est un projet de type bibliothèque de classes, alors les sections de configuration (personnalisées) doivent présenter les projets qui « s’exécuteraient ». Je ne sais pas si le projet de bibliothèque dll/class pourra également accéder aux paramètres utilisateur à partir du projet qui sera exécuté. Vous pouvez essayer ça.

S’il ne parvient pas à y accéder, vous pouvez utiliser LINQ/XPath pour lire la configuration de la même manière qu’un fichier XML normal.

コメント

タイトルとURLをコピーしました