共享连接字符串

时间:2010-04-06 11:22:10

标签: c# asp.net-mvc design-patterns

我正在开发一个类库(C#),我将把它用于我的不同项目(稍后)。我的类库dll将使用项目的连接字符串/数据上下文,它将引用我的新dll。我该怎么办? 假设我有一个名为“CLP”的类库项目和一个网站项目“WP”。我可以添加对CLP.dll文件的引用,但我将如何将连接字符串/数据上下文对象传递给该DLL?因为CLP.dll将根据“WP”的连接字符串访问db。

不确定我的问题是否清楚!

2 个答案:

答案 0 :(得分:1)

如果您开发类库并且它需要一个名为“ConnectionString”的连接字符串,只要您调用它的项目在其“ConnectionString”的web / app配置文件中有一个连接字符串,那么它应该没问题。< / p>

所以使用你的项目名称。带有数据访问代码的“CLP”类项目将使用字符串“ConnectionString”设置连接:

_serverConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

然后针对该连接进行编码。

在您的Web项目(“WP”)的web.config文件中,添加以下内容:

  <connectionStrings><add name="ConnectionString" connectionString="Data Source=.\SQL2008;Integrated Security=True" providerName="System.Data.SqlClient" /></connectionStrings>

显然指向您用于“WP”项目的数据源等。

希望这有帮助。

答案 1 :(得分:0)

加上@ WestDiscGolf的回答:

您还可以使用参数从配置文件中传入connectionstring的名称(因此您不必总是使用“ConnectionString”)。

例如:在您的DLL类中,您可以:

public void buildConnection(string sConnectionString){
   //Some code, variables, etc

   _serverConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[sConnectionString]);

   //Some more code, etc etc

}

并称之为:

buildConnection("MyConnectionStringNameInTheConfigFile");

**注意:我对返回类型使用void作为样本,如果有返回,只需替换它。我不知道你的项目,所以我不想假设你将如何使用连接!!