.NET DLL Paramètres et de configuration lorsqu'il y a un site Web de Référence - ce qui se passe?
Ma compréhension est que .NET n'a pas vraiment de "faire" des fichiers de configuration pour les Dll uniquement l'Exécutable principal ou une Application Web obtient un fichier de config, et toutes les Dll référencé par le fichier Exécutable/Web App lire.
Mais dans VS2008, si vous ajoutez une Référence Web à une Classe de la Bibliothèque (DLL) du projet, il ajoute un des Paramètres.Paramètres de fichier et une application.fichier de configuration pour le projet. Ils contiennent l'URL principale pour le Web de Référence.
Alors, quelles sont ces fichiers? Il n'y a aucun moyen pour la DLL de les lire sans aide, non?
edit: le contenu de l'application.de configuration et les Paramètres.Paramètres semblent faire une différence cependant: la modification (par exemple) l'URL de Référence Web dans le Projet DLL de l'application.fichier de configuration sur son propre ne fait aucune différence, mais si vous modifiez l'URL dans l'application.config puis ouvrez les Paramètres.Fichier de paramètres, les modifications que vous avez apportées dans l'app.config puis copiés dans les Paramètres.Les paramètres. Et puis, la DLL ramasse la nouvelle valeur au moment de l'exécution. Comment est-il fait cela?
edit: une Partie de ma confusion ici, c'est parce que je ne suis pas trop clair sur la différence entre les Paramètres.Les paramètres et l'application.config et comment ils se rapportent les uns aux autres, alors peut-être que les gens peuvent aider avec cette question.
OriginalL'auteur codeulike | 2009-10-21
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen pour que la DLL à les lire, mais ils sont de forts relents d'un consommateur de votre DLL de ce qu'ils pourraient vouloir inclure dans le réel de Paramètres de fichier de configuration
Modifier
En réponse à l'observation de l'OP - tout ce qui est modifié dans les paramètres obtient compilé dans le code par défaut de prendre si aucun réglage du nom correct est présent au moment de l'exécution. C'est pour ça que c'est de travailler.
Ah, merci. Je n'étais pas trop clair sur le chemin de l'app.config concerne les Paramètres.Les paramètres afin de modifier votre aide.
OriginalL'auteur Damien_The_Unbeliever
Visual Studio a plus qu'à ajouter ce genre de choses quelque part, et elle ne sait pas de quelle application vous voulez le placer. Vous pouvez accéder à la config de la DLL en procédant de la manière suivante:
La seule fois où je l'ai trouvé cela utile, c'est quand j'ai écrit un plugin comme une DLL pour une application 3ème partie et je voulais ma DLL à être configurable (pas quelque chose de la plupart des gens qui, souvent, que je soupçonne).
Habituellement, si vous êtes juste déplacer la config pièces dont vous avez besoin pour votre application.config ou web.config.
Modifier- En ce qui concerne votre mise à jour qui fait sens. Les paramètres.les paramètres de l'application étendue de paramètres proviennent de l'application.fichier de configuration. Pour l'application étendue des paramètres de son vraiment juste une classe fortement typée représentant ces paramètres.
Non, le fichier DLL avec un des Paramètres.Fichier de paramètres de lecture à partir de l'app.config/web.config. Si cela ne peut pas être trouvé, il en sera de retour à ses valeurs par défaut.
Je pense que je suis confus de vous, avec mon utilisation du terme app.config. Je veux dire, la principale de l'application, le fichier de configuration (MyApp.exe.config ou Web.config). Pour moi le DLL config est vraiment Madll.dll.config. HTH
J'ai été aussi confus au sujet de ce qui se passe à des valeurs de Paramètres.Les paramètres. Comme je le comprends maintenant, ils se "cuites" dans l'Assemblée en tant que valeurs par défaut à utiliser si aucune des valeurs proviennent des fichiers de configuration?
Oui, exactement. Regarder à l'intérieur de Paramètres.Concepteur de fichier qui est généré. Vous verrez un attribut DefaultSettingValueAttribute, comme ce- [global::System.La Configuration.DefaultSettingValueAttribute("Test")]. Vous pouvez en lire plus à propos de cet attribut ici- msdn.microsoft.com/en-us/library/...
OriginalL'auteur RichardOD
Il est possible de lire à partir de fichiers de configuration dans la DLL.
Juste ajouter une application.fichier de configuration pour le projet de DLL, et assurez-vous de lire les paramètres de configuration de l'intérieur de la DLL. Lorsqu'il est déployé, votre fichier de configuration doit avoir le nom de "Madll.dll.config" (en supposant que votre fichier DLL est nommé "MyDLL.dll") et être dans le même dossier que la DLL.
Le code suivant doit retourner mon connectionstring de ma dll :
return ConfigurationManager.AppSettings["ConnectionString"];
Aussi, ce n'est pas ce que je demande. Je ne demande pas comment faire un fichier de configuration de travail avec une DLL, je me demande pourquoi Visual Studio est la peine d'en ajouter un à un projet de DLL.
Testé dans .NET de 4,6 et confirmé cela ne fonctionne toujours pas.
OriginalL'auteur ZokiManas