La lecture des paramètres de l'app.config ou web.config .net
Je suis en train de travailler sur une bibliothèque de classes C# qui doit être en mesure de lire les paramètres de l' web.config
ou app.config
fichier (selon que la DLL est référencé à partir d'un ASP.NET application web ou une application Windows Forms).
J'ai trouvé que
ConfigurationSettings.AppSettings.Get("MySetting")
fonctionne, mais que le code a été marquée comme obsolète par Microsoft.
J'ai lu que je devrais être à l'aide de:
ConfigurationManager.AppSettings["MySetting"]
Cependant, la System.Configuration.ConfigurationManager
classe ne semble pas être disponibles à partir d'une Bibliothèque de classes C# du projet.
Personne ne sait quelle est la meilleure façon de le faire est?
- Comme je l'ai lu 4 MSDN exemples et des articles.. Et atterri ici. Il suffit d'ajouter une référence.. pourquoi ne peuvent-ils pas simplement dire que. Bonne question! +1
- Si vous voulez écrire les paramètres de retour ainsi, regardez ici comment vous pouvez le faire.
- Double Possible de les avantages et les inconvénients de AppSettings vs applicationSettings (.NET application.config / Web.config)
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de ajouter une référence à
System.Configuration
dans votre projet dossier de références.Vous devez certainement être à l'aide de la
ConfigurationManager
sur le obsolètesConfigurationSettings
.Pour L'Exemple D'Application.config comme ci-dessous:
Vous lisez ci-dessus les paramètres de l'application en utilisant le code indiqué ci-dessous:
Vous pouvez également nécessaire d'ajouter une référence à
System.Configuration
dans votre projet, si il n'y a pas déjà un. Vous pouvez ensuite accéder aux valeurs de la sorte:Espérons que cette aide!
ConfigurationSettings
au lieu deConfigurationManager
alors vous est à l'aide d'une API obsolète. C'est l'ensemble de point.Mise à jour de framework 4.5 et 4.6; le suivant ne fonctionne plus:
Maintenant accéder au Réglage de classe via les Propriétés:
Voir La Gestion Des Paramètres De L'Application pour plus d'informations.
Clic droit sur votre Bibliothèque de classe, et de choisir "Ajouter une référence" option dans le Menu; et, enfin, de la .NET onglet, sélectionnez Système.La Configuration. Cela permettrait de comprendre le Système.Dll de Configuration dans votre projet.
ConfigurationManager.ConnectionStrings[0].ConnectionString
Im en utilisant cela et cela fonctionne bien pour moi
Lire De Config :
Vous aurez besoin d'ajouter une référence à la Config
D'obtenir la Valeur, avec l'aide de code suivant :
chaîne de valeur = Propriétés.Les paramètres.Par défaut.keyname;
Enregistrer Config :
Vous devez ajouter au projet une référence pour le Système.Configuration de l'assemblée.
Vous pourriez être l'ajout de l'Application.fichier de configuration pour une DLL. App.Config ne fonctionne que pour le fichier exécutable projets, étant donné que toutes les dll de prendre la configuration depuis le fichier de configuration pour l'exe en cours d'exécution.
Disons que vous avez deux projets dans votre solution:
Votre problème est peut-être releated du fait que vous êtes, y compris l'application.config pour SomeDLL et pas SomeExe. SomeDll est capable de lire la configuration de l'SomeExe projet.
Essayez ceci:
Dans le web.config devrait être le prochain sur la structure:
J'ai eu le même problème, il suffit de lire de cette façon:
This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings
web.config
est utilisé avec des applications web.web.config
par défaut dispose de plusieurs configurations requises pour l'application web. Vous pouvez avoir unweb.config
pour chaque sous-dossier de votre application web.app.config
est utilisé pour les applications windows. Lorsque vous générez l'application dans vs.net, il sera automatiquement renommé<appname>.exe.config
et ce fichier doit être livré avec votre demande.Vous pouvez utiliser la même méthode pour appeler la
app settings
valeurs des deux fichiers de configuration :System.Configuration.COnfigurationSettings.AppSettings.Get("Key")
au lieu d'utiliser les crochets.Je vous recommande fortement de créer un Wrapper pour cet appel. Quelque chose comme un
ConfigurationReaderService
et utiliser l'injection de dépendance pour obtenir cette classe. De cette façon vous serez en mesure de isoler cet les fichiers de configuration à des fins de test.Donc utiliser la
ConfigurationManager.AppSettings["something"];
suggéré et renvoie cette valeur. Vous pouvez avec cette méthode de créer une sorte de retour par défaut si il n'y a pas de clé disponible dans .fichier de configuration.app.DEBUG.config
,app.RELEASE.config
, etapp.TEST.config
, etc.Aussi, vous pouvez utiliser formo:
Config:
Code:
Comme je l'ai trouvé meilleure approche pour accéder aux paramètres de l'application des variables de manière systématique par une classe wrapper sur le Système.Configuration comme ci-dessous
Maintenant, nous pouvons accéder aux paramètres variables en dur noms codés à l'aide d'une autre classe comme ci-dessous
Juste pour être complet, il y a une autre option disponible pour les projets web uniquement:
L'avantage de cela est qu'il ne nécessite pas une référence supplémentaire à ajouter donc peut-être préférable pour certaines personnes.
Je crée toujours un IConfig interface avec typesafe propriétés déclarées pour toutes les valeurs de configuration. Une Config de mise en œuvre de la classe puis wrappers les appels Système.La Configuration. Tout votre Système.Les appels de Configuration sont maintenant dans un endroit tellement plus facile et plus propre à maintenir et suivre les champs qui sont utilisés et à déclarer leurs valeurs par défaut. J'écris un ensemble de méthodes helper privées de lire et d'analyser des types de données communs.
À l'aide d'un Cio cadre, vous pouvez accéder à la IConfig champs de n'importe où dans votre application par un simple passage de l'interface avec le constructeur de la classe. Vous êtes également en mesure de créer des maquettes implémentations de la IConfig interface dans vos tests unitaires de sorte que vous pouvez maintenant tester différentes valeurs de configuration et de combinaisons de valeurs sans avoir besoin de toucher à votre Application.config ou Web.fichier de configuration.
Étape 1: faites un clic Droit sur l'onglet références à ajouter une référence.
Étape 2: Cliquez sur les Assemblages à onglet
Étape 3: Recherche pour "Système".La Configuration'
Étape 4: Cliquez sur OK.
Ensuite, Il sera
J'ai essayé de trouver une solution à ce même problème pour un couple de jours maintenant. J'ai été en mesure de résoudre ce problème en ajoutant une clé au sein de l'appsettings balise dans le web.config. Cela devrait remplacer la .dll lors de l'utilisation de l'aide.
Une autre solution possible:
Pls vérifier .net version sur laquelle vous travaillez. Il doit être supérieur à 4. Et vous devez ajouter du Système.Système de Configuration de la bibliothèque de votre application
vous pouvez utiliser en dessous de la ligne, dans mon cas, c'était du travail:
vous devez vous assurer qu'au-dessus de la ligne de code est aussi ancienne version et ses obsolète dans de nouvelles bibliothèques.
voici un exemple:
App.config