2010-11-27 2 views
3

Je débute dans le développement d'applications de bureau et je construis actuellement une application de bureau utilisant une architecture en couches (interface utilisateur, DAL, BLL).Où stocker la chaîne de connexion pour la bibliothèque de classes dans l'application de bureau? Puis-je utiliser dans app.config?

En développement web, je stockais la chaîne de connexion dans web.config et ma bibliothèque de classes y accédait. S'il vous plaît me guider comment & où la chaîne de connexion doit être stockée pour DAL dans l'application de bureau. J'ai essayé d'ajouter un fichier app.config dans ma bibliothèque de classe et accéder à la chaîne de connexion comme ceci:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString) 

Mais il throuws une erreur: « référence d'objet non définie à une instance d'un objet. »

Veuillez me guider à ce sujet. Merci pour votre soutien et votre partage.

+1

Oui, vous pouvez utiliser: http://stackoverflow.com/questions/4256809/can-we-declare-variables-in-app-config-file –

Répondre

3

Oui, dans une application de bureau, toutes les configurations doivent être dans le app.config pour cette application. Les bibliothèques de classes utilisées par cette application de bureau obtiendront leur config à partir de cette app.config par défaut.

Si cette ligne génère une exception:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString 

alors il est plus probable car aucune entrée <connectionStrings> du nom « connectionstring » existe. Vérifiez NULL:

if(ConfigurationManager.ConnectionStrings["connectionstring"] != null) 
{ 
    string connStr = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString; 
} 
4

Il doit être stocké dans le fichier app.config de l'application Windows et non dans la bibliothèque de classes. Fondamentalement, lorsque vous exécutez votre exécutable, il devrait y avoir un fichier appelé Foo.exe.config (où Foo.exe est l'exécutable résultant de votre application Windows) dans le même dossier qui contient les paramètres.

Dans Visual Studio, ajoutez simplement un fichier app.config au projet d'application WinForms et stockez les paramètres ici. Dans ce cas, ils seront lus avec succès par votre bibliothèque personnalisée. Il n'est pas nécessaire d'ajouter un fichier app.config à votre projet de bibliothèque de classes car il ne sera jamais utilisé.

2

Il sera stocké dans le fichier app.config et vous pouvez accéder à la chaîne de connexion que vous faites dans l'application web:

if(ConfigurationManager.ConnectionStrings["connectionstringName"] != null) 
{ 
     string connectionString = ConfigurationManager.ConnectionStrings["connectionstringName"].ConnectionString; 
} 
0

Tous les paramètres de configuration pour une application si les paramètres d'application ou d'une connexion les chaînes doivent être placées dans le fichier app.config de l'application. Dans le cas de votre application de bureau, vous pouvez ajouter un fichier "Application Configuration" ou "app.config" et placer votre chaîne de connexion là-bas. Toute dépendance pour cette application .. par ex. une bibliothèque de classes comme une DAL tirera la valeur dont elle a besoin pour sa chaîne de connexion à partir du fichier * .config de l'application.

0

Vous pouvez utiliser app.config ou d'une autre manière, vous pouvez utiliser un simple fichier texte mentionnant une chaîne de connexion.

//// Read connection string from the text file 
StreamReader sr = new StreamReader(System.Windows.Forms.Application.StartupPath @"C:\ConnectionString.txt"); 
connStr = sr.ReadLine(); 
Questions connexes