在多个Web项目之间共享连接字符串

5

好的,我有两个Web项目WebProject1和WebProject2。这两个项目都需要数据库连接,所以这都在一个名为Common的C#.NET项目中。

现在我的问题是,目前两者的连接字符串相同,并且它们都硬编码到DB类(在Common项目中),但是我想将其移到配置文件中。

我真的很想在Common项目中拥有一个配置文件,其中包含连接字符串,然后两个Web项目都可以使用。这可行吗?如果可以,该如何实现?

2个回答

5
有几种方法可以实现:
  1. 将常用的配置设置放在machine.config中,如此处所示。
  2. 将常用的配置设置放在一个中央文件中,并在每个项目的app.config中链接到该文件,如此处所示。
  3. 将配置设置存储在注册表中。

您的应用程序可能没有权限从生产服务器的任何位置读取/写入,除了应用程序目录。它也可能没有权限进行注册表读写操作。 - this. __curious_geek
1
我不喜欢选项 3。注册表设置有点倒退,而且将它们放入源代码控制中很麻烦。 - RichardOD
连接到 configSource 获取连接字符串的想法似乎是一个很好的主意。然后我所要做的就是将 Common.config 文件复制到目标 bin 目录中。我会尝试一下看看它的运行效果如何,虽然对于在 bin 目录中硬编码配置文件路径还不太确定。 - Adam S-Price

2

以下是一种方法。

通过将与数据库交互的DataLayer分离出来并将其制作为类库项目,来实现。这个类库项目将生成一个程序集,你可以进一步引用到任何你想要的项目中。在这个项目中将'app.config'添加到项目根目录,并将连接字符串存储到'app.config'中。该项目中的数据访问类可以引用'app.config'中的连接字符串。当你编译并部署数据访问项目成为一个程序集时,'app.config'被嵌入到程序集中。现在,你可以将这个程序集作为引用添加到任意数量的项目中,以共享连接和数据访问。


那我们如何在部署时更改连接字符串? - Muhammad Akhtar
在部署之前,您可以更改app.config中的连接字符串。 - this. __curious_geek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接