web-dev-qa-db-fra.com

En utilisant app.config pour définir des variables fortement typées

Je suis un c # novice exécutant .NET 3.5, et je voudrais stocker une bande de valeurs par défaut d'application dans App.Config, car les paramètres peuvent varier selon l'environnement du serveur (par exemple le développement, la mise en scène, la production). Ce que je veux faire, c'est semblable à ce qui est décrit dans cet article sur scaleverflow , mais je veux aussi pouvoir utiliser des valeurs non chaîne (par exemple int, bool). Quelque chose comme ça (les valeurs de nom ne sont que des exemples, BTW):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <applicationSettings>
        <MyApp>
            <setting name="InitText" serializeAs="String">
                <value>Hello</value>
            </setting>
            <setting name="StartAt" serializeAs="Integer">
                <value>5</value>
            </setting>
            <setting name="IsWeekend" serializeAs="Boolean">
                <value>True</value>
            </setting>
        </MyApp>
    </applicationSettings>
</configuration>

Quelqu'un pourrait-il fournir un exemple de comment faire cela et comment récupérer les valeurs via c #? J'ai vu beaucoup d'exemples qui nécessitent de l'utilisation et, mais je ne sais pas si j'ai besoin de ces éléments, et si oui, comment les créer.

21
Mass Dot Net

Qu'en est-il de l'utilisation de Architecture des paramètres d'application de la structure .NET. Vous pouvez avoir fortement accès à l'accès aux valeurs par défaut.

Sur un projet d'application Windows, le fichier de paramètres est créé automatiquement dans le dossier Ressources. Vous pouvez ensuite ajouter des paramètres d'application qui sont persistés dans le fichier app.config, comme vous l'avez montré dans votre question.

Par exemple:

int i = Settings.Default.IntSetting;

bool b = Settings.Default.BoolSetting;

Edit: Si votre projet ne contient pas le fichier de paramètres, vous pouvez toujours en ajouter une en ajoutant un nouvel élément, puis en choisissant un fichier de paramètres. (Clic droit sur le fichier de projet et faire: add-> nouvel élément-> fichier de paramètres). Dans mon cas, j'ai nommé les paramètres de l'informatique, mais vous pouvez le nommer ce que vous voulez.

Une fois l'ajout du fichier Visual Studio ouvrira le concepteur de paramètres dans lequel vous pouvez ajouter vos paramètres fortement tapés. D'après ce que vous avez dit, vous devez définir les paramètres à la portée de l'application et non à l'utilisateur. Construisez ensuite le projet et vous devez avoir accès à une classe avec le nom du fichier.

32
João Angelo
Boolean isWeekend = Convert.ToBoolean(ConfigurationManager.AppSettings["IsWeekend"])
24
JayG

La chose que Jayg suggérée peut être faite automatiquement par le studio Visual. Utilisez l'assistant AppSetTotings comme décrit dans le MSDN . De plus, l'infrastructure - paramètres d'application peut valoir la peine de lire.

2
tobsen

On dirait que vous voulez avoir une personnalisation <configSection>. Fondamentalement, cela fonctionne comme ceci:

-Créez une classe de configuration qui possède des valeurs par défaut correctes, etc., et configurez une belle structure d'héritage afin que ce soit auto-charger en fonction de vos paramètres web.config. -Ajouter votre section de configuration sur web.config, spécifiant le "Type" qui chargera vos paramètres afin que le framework .NET sache quoi initialiser

Vous pouvez trouver toutes sortes d'informations sur la Library MSDN à ce sujet. Les exemples sont ASP.NET, mais ils fonctionnent également avec les configurations de l'application.

0
jvenema