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

iLe*_*ing 5 c# connection-string app-config class-library web-config

我在一个单独的类库项目中有一个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>
Run Code Online (Sandbox Code Playgroud)

Unm*_*kar 7

在这种情况下,您的库应该使用依赖注入来控制反转.

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

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

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


Joe*_*zer 5

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

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

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