Obtenir de la chaîne de connexion dans le projet de bibliothèque de classes dans une solution
Dans mon .net 4 solution, j'ai deux projets différents - un projet d'application web et un projet de bibliothèque de classes.
Dans le projet d'application web, base de données de la chaîne de connexion est dans le web.fichier de configuration. Je voudrais accéder à cette chaîne de connexion de projet de bibliothèque de classes. Est-il possible? si oui, comment?
Si il y est une meilleure approche pour obtenir la chaîne de connexion, s'il vous plaît laissez-moi savoir.
OriginalL'auteur s.k.paul | 2013-09-08
Vous devez vous connecter pour publier un commentaire.
Pour y accéder à partir de votre bibliothèque de classe ajouter une référence à
System.Configuration
ensuite utiliserSystem.Confinguration.ConfigurationManager.ConnectionStrings
.Ce n'est pas idéal pour lire ce à partir d'une bibliothèque de classe. Après tout, pouvez-vous dire que votre bibliothèque de classe sera toujours consommé par quelque chose avec un fichier de configuration? Certainement pas si vous la partagez avec d'autres développeurs, en particulier des plates-formes différentes.
Considérer:
par exemple:
ConfigurationManager
directement dans la bibliothèque de classe est faux, car cette fonction est en dehors de la portée de la bibliothèque.la bibliothèque a été écrit en C#, je pense que c'est une hypothèse valable". Je suis en désaccord. Tout simplement parce que la bibliothèque est écrite en C# ne signifie pas qu'il sera consommée par un .NET solution. Il pourrait être, par exemple, iterop avais en java ou quoi que ce soit d'autre d'ailleurs. Vous ne m'avez curieux de savoir ce qui se passerait si vous avez consommé de configuration manager dans une bibliothèque dont l'appelant n'a pas de support. Il y en a une pour la liste des choses à faire! 🙂
D'autre part, si vous avez écrit ceci, et n'ont pas l'intention de le partager, alors il serait plus sûr hypothèse.
Depuis les bibliothèques de classe ne peut prendre les informations de configuration à partir d'applications qui consomment beaucoup, je ne pense pas que vous pourriez accès
ConfigurationManager
à partir d'une bibliothèque de classe avec une application beaucoup qui ne prend pas en charge un fichier de configuration. En coulisses, le gestionnaire de configuration crée une classe statique qui accède au fichier de configuration par le biais de laApplication
objet. Dans un non-.net l'application, laApplication
objet n'existe pas et donc, les informations de configuration ne peut pas être lu.Et une autre pensée vint à l'esprit. Les autorisations d'accès au fichier de config dans le fichier système par l'utilisateur de la
AppPool
, donc si pas deAppPool
existe, il n'y aura pas d'utilisateur pour accéder au fichier de configuration sur le disque.OriginalL'auteur Paul Fleming
Dans l'application web du projet créer une classe statique avec une méthode statique où vous retournerez la chaîne de connexion, mettre la référence dans le projet de bibliothèque de classes et d'appeler la méthode que vous avez créé.
N'est-on pas une référence circulaire d'erreur depuis la bibliothèque de classe aurait besoin de faire référence à la projet web pour accéder à cette classe statique et le projet web serait évidemment déjà le référencement de la bibliothèque de classe?
Ce n'est pas la bonne solution. Bibliothèque de classe doit être référencé dans les différents projets, il n'est donc pas le droit d'appeler à ajouter de la webapp de référence dans la bibliothèque de la classe. L'in-dépendance de la bibliothèque de la classe est allé dans ce cas.
OriginalL'auteur Kubik