【问题标题】:How to get connection string from app.config in another class library project?如何从另一个类库项目中的 app.config 获取连接字符串?
【发布时间】:2013-06-25 07:35:34
【问题描述】:

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

在同一个类库中我可以使用这段代码:

 DAL.Properties.Settings.Default.BayrueConnectionString;

但问题是我无法从我的网络应用程序中获取它。

谢谢

【问题讨论】:

  • 类库使用正在使用它们的应用程序的配置文件,因此设置需要在应用程序的配置文件中,而不是库中。库不使用配置文件。
  • 如您所见,我正在使用 app.config

标签: c# asp.net


【解决方案1】:

我认为没有比这更优雅的方法了。将静态辅助方法添加到返回它的类库中。

public sealed class Helper
{
    private Helper()
    {
    }

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

【讨论】:

  • 我认为这个会解决它。
【解决方案2】:

添加对System.Configuration的引用。

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

【讨论】:

  • 对象引用未设置为对象的实例。这是我在使用您的代码时遇到的错误
  • 您确定 app.config 文件位于您运行应用的文件夹中吗?
  • app.config 在另一个项目中
  • 部署应用时,所有文件都需要位于同一个文件夹中。
【解决方案3】:

首先,在您要引用的项目中创建一个新的 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。

使用 Include="{the ConnectionStrings.config youd like to reference}" 将以下元素添加到 .csproj:

<ItemGroup>
    <Content Include="..\ConnectionStrings.config" />
</ItemGroup>

重新加载您的项目。这应该将一个 ConnectionStrings.config 文件(如上所示)添加到您的项目中。请注意,两者都将打开同一个文件。现在编辑 app.config 以引用刚刚添加到 DAL 中的新创建的 .config 文件:

<connectionStrings configSource="ConnectionStrings.config" />

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2015-01-05
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多