2010-11-27 19 views
3

我是桌面应用程序开发新手,目前正在使用分层体系结构(用户界面,DAL,BLL)构建桌面应用程序。哪里可以在桌面应用程序中存储类库的连接字符串?我可以在app.config中使用吗?

在web开发中,我用来在web.config中存储连接字符串,我的类库从那里访问它。请指导我如何在桌面应用程序中将DAL存储连接字符串的位置&。我尝试添加一个app.config文件在我的类库和访问连接字符串是这样的:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString) 

但throuws一个错误:“对象引用不设置到对象的实例”

请在此指导我。感谢您的支持和分享。

+1

是的,您可以使用:http://stackoverflow.com/questions/4256809/can-we-declare-variables-in-app-config-file – 2010-11-27 11:01:04

回答

3

是的,在桌面应用程序中,所有配置都应该位于该应用程序的app.config中。此桌面应用程序使用的类库默认从该app.config获取它们的配置。

如果该行抛出异常:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString 

那么它很可能是因为没有<connectionStrings>条目名称“的ConnectionString”的存在。检查空:

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

它应该存储在Windows应用程序的app.config中,而不是类库。基本上,当您运行可执行文件时,应该有一个名为Foo.exe.config(其中Foo.exe是Windows应用程序的结果可执行文件)的文件在包含设置的相同文件夹中。

因此,在Visual Studio中,只需将一个app.config文件添加到WinForms应用程序项目并将设置存储在那里。在这种情况下,它们将被您的自定义库成功读取。不需要将app.config文件添加到您的类库项目中,因为它永远不会被使用。

2

将存储在app.config文件,并为你的web应用程序你可以访问连接字符串:一个应用程序

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

任何配置设置是否应用程序设置或连接字符串应该放在应用程序的app.config文件中。如果你的桌面应用程序,你可以添加一个“应用程序配置”文件或“app.config”并将连接字符串放在那里。该应用程序的任何依赖关系。像DAL这样的类库将从应用程序的* .config文件中获取其连接字符串所需的值。

0

您可以使用app.config或其他方式使用简单的文本文件提及连接字符串。

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