如何从另一个类库项目中的app.config获取连接字符串?

3
如何从另一个“类库项目”中的app.config获取连接字符串?
在同一类库中,您可以使用以下代码:
 DAL.Properties.Settings.Default.BayrueConnectionString;

但问题在于我无法从我的Web应用程序中获取它。谢谢。

2
类库使用调用它们的应用程序的配置文件,因此设置需要在应用程序的配置文件中,而不是类库中。类库不使用配置文件。 - Tim
正如您所看到的,我正在使用 app.config。 - HAJJAJ
可能是重复的问题: .Net库项目中的app.config - Steve
3个回答

4

我认为没有比这更加优雅的方式了。在你的类库中添加一个静态帮助方法来返回它。

public sealed class Helper
{
    private Helper()
    {
    }

    public static string GetBayrueConnectionString()
    {
        return DAL.Properties.Settings.Default.BayrueConnectionString;
    }
}

我认为这个会解决问题。 - HAJJAJ

0

添加引用 System.Configuration

使用 System.Configuration.ConfigurationManager.ConnectionStrings["DAL.Properties.Settings.BayrueConnectionString"]


对象引用未设置到对象实例。这是当您使用您的代码时出现的错误。 - HAJJAJ
你确定 app.config 文件位于你运行应用程序的文件夹中吗? - Jakub Konecki
app.config 文件在另一个项目中。 - HAJJAJ
当您部署应用程序时,所有文件都需要在同一个文件夹中。 - Jakub Konecki

0
首先,在您想要引用的项目中创建一个新的 ConnectionStrings.config 文件。

ConnectionStrings.config:

<connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data                        Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcApplication-20130625013234;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcApplication-20130625013234.mdf" />
</connectionStrings>

接下来,卸载您的DAL项目。卸载后,右键单击 > 编辑 DAL.csproj。
在 .csproj 中添加以下元素,并使用 Include="{您想要引用的 ConnectionStrings.config}":
<ItemGroup>
    <Content Include="..\ConnectionStrings.config" />
</ItemGroup>

Solution Explorer

重新加载您的项目。这将向您的项目添加一个ConnectionStrings.config文件,如上所示。请注意,两者将打开同一个文件。现在编辑app.config以引用刚刚添加到DAL的新创建的.config文件:
<connectionStrings configSource="ConnectionStrings.config" />

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