我正在开发一个类库(C#),我将把它用于我的不同项目(稍后)。我的类库dll将使用项目的连接字符串/数据上下文,它将引用我的新dll。我该怎么办? 假设我有一个名为“CLP”的类库项目和一个网站项目“WP”。我可以添加对CLP.dll文件的引用,但我将如何将连接字符串/数据上下文对象传递给该DLL?因为CLP.dll将根据“WP”的连接字符串访问db。
不确定我的问题是否清楚!
答案 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作为样本,如果有返回,只需替换它。我不知道你的项目,所以我不想假设你将如何使用连接!!