2011-03-07 74 views
4

我有一个Web项目(mvc)和数据访问层在一个分离的类库项目。我需要访问位于该库项目中的app.config中的连接字符串。如何访问库中的连接字符串

ConfigurationManager.ConnectionStrings [0] .ConnectionString拉怪东西。我在图书馆的配置和Web项目的配置文件中都没有这种设置。

在app.config看起来像这样:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="DALConnectionString" connectionString="User ID=sa;Password=pass;Initial  Catalog=db;Data Source=srv\SQL2005;" /> 
</connectionStrings> 
</configuration> 

回答

5

默认情况下,类库不能访问配置文件。

类库的客户端,在这种情况下,您的web项目,可以提供配置设置。

因此,把所有的相关设置,连接字符串,放在网页的配置文件中。类库中的ConfigurationManager代码将使用Web项目配置设置。

0

你应该添加在web.config上面显示的片段,然后在运行时配置管理器将使用它,即使你的类库中运行。

0

您无法访问DLL的app.config。

app.config仅适用于入口点程序集或适用于Web项目的web.config

尝试将连接复制到入口点配置或通过解析配置XML加载配置 - 不推荐。

5

你的图书馆在这种情况下应该使用dependency injectioninversion of control

您的数据访问层(DAL)库中的类应将连接字符串作为constructor argumentproperty value

这将确保您的DAL可以在其他项目中使用,并且不会绑定到您的mvc Web应用程序。

让消耗DAL的代码从配置文件读取连接字符串并将其注入到类的构造函数中。