9
votes

Stockage des paramètres d'application hiérarchique dans web.config ou app.config

J'ai besoin de stocker mes paramètres de configuration de l'application dans un format hiérarchique dans web.config ou app.config. Est-ce possible? ou je dois le stocker dans un fichier ou une base de données XML et l'utiliser à la place? Le format de paire de valeurs de valeur unie ne suffit pas pour moi. XXX

Il s'agit d'une application de rapport sur le Web et je dois stocker les chemins de fichiers pour les fichiers source, les packages SSIS, les détails du serveur FTP etc.

Mise à jour: Si je choisis l'option Section de configuration personnalisée, puis-je stocker les paramètres dans un fichier séparé pour conserver le fichier Web.config Main.config Nettoyer des paramètres de l'application?


4 Réponses :


6
votes

Vous ne pouvez pas ajouter d'éléments personnalisés à AppSettings .

La meilleure façon d'obtenir un format personnalisé pour écrire votre propre configuration configurationsSettings et l'utiliser dans la configuration.

Cela vous permettra de stocker des données de manière fortement dactylographiée, ainsi que des noms d'éléments et d'attributs significatifs.

voir Comment: Créer des sections de configuration personnalisées à l'aide de ConfigurationsSection sur MSDN .


5 commentaires

Merci. On dirait que je dois écrire beaucoup de code pour cela. Ce serait bien s'il y a une solution de remplacement plus facile


Puis-je conserver les paramètres de l'application dans un fichier séparé si je choisis cette approche?


@RKP - Oui, c'est quelque chose qui vient gratuitement (voir le configsource propriété). Tout comme vous pouvez avoir un fichier séparé pour la section Connections .


Je veux dire stocker tous les paramètres d'application dans un fichier, pas un fichier par section (rapport dans mon exemple). Est-ce possible?


@RPK - Si votre section est une collection de ces paramètres, alors oui.



3
votes

Vous ne pouvez pas faire cela comme vous le suggérez.

Ce que vous pouvez faire est de grouper par le nom de la clé Les éléments: xxx

Le meilleur moyen Soyez de définir votre propre configuration

Voici quelques liaisons à ce sujet:


2 commentaires

Puis-je conserver les paramètres de l'application dans un fichier séparé si je choisis cette approche?


Quelle approche? Noms de clés spéciaux ou sections de configuration?



0
votes

La meilleure approche que je connaisse est de créer votre propre classe de paramètres et Serialize / le désarilze pour la lecture / écrire votre application. Paramètres.

Vous pouvez également utiliser admin. Page de votre site Web Pour enregistrer tous les paramètres.

Peut être dans votre cas est préférable d'utiliser une base de données pour conserver tous les paramètres.


0 commentaires

3
votes

Vous ne pouvez pas stocker les éléments XML qu'ils ont suggéré dans les applications. Si vous avez besoin d'une hiérarchie comme vous l'avez mentionné, essayez l'une des approches suivantes

  1. Magasinez des éléments XML entier dans AppSettings Analysez le XML P>

       import ReportClassNamespace from ReportClassAssembly
    
       Var["Report1"] = Report(SourceFilePath:"value1",DesinationFolderPath:"value2")
       Var["Report2"] = Report(SourceFilePath:"value1",DesinationFolderPath:"value2")
    
  2. Stockez la section XML dans configuration (voir les réponses ci-dessus) p> li>

  3. Utilisez le projet DSLConfig .
    Ajoutez-le avec Nuget et look Ajouter L'Appspicke pour des exemples.
    Dans votre cas, vous pouvez créer un rapport de classeConfig et utiliser cette classe comme classe de configuration.
    Exemple: P>

    public class Report {
      string SourceFilePath { get; set; }
      string DesinationFolderPath { get; set; }
    }
    


0 commentaires