如何从库中访问连接字符串

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

ConfigurationManager.ConnectionStrings [0] .ConnectionString提取一些奇怪的东西。 我既没有在库的配置中也没有在web项目的配置文件中进行此类设置。

App.config看起来像这样:

      

默认情况下,类库无法访问配置文件。

类库的客户端(在本例中是您的Web项目)可以提供配置设置。

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

在这种情况下,您的库应该使用dependency injection 来控制反转 。

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

这将确保您的DAL也可以在其他项目中使用,并且不依赖于您的mvc Web应用程序。

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

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

您无法访问DLL的app.config。

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

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