Connectionstring访问

时间:2014-11-06 15:12:06

标签: asp.net asp.net-mvc asp.net-web-api

从Web.config文件获取Connection String的最佳方法是什么。我知道它可以在App_start中的Global.asax中使用

public class Global : System.Web.HttpApplication
{
    public static 
   readonly string ConnectionString = "connection information";

    . . .    
}

但是,如何在多个装配中获取静态变量。

假设我的Web应用程序(UI,服务层,业务层,数据层)有4个程序集,我想访问DataLayer(这是一个单独的程序集),

我不想把配置读取放在Datalayer Constructor中。

我想使用HttpAppliction变量/静态变量来读取Datalayer中的连接字符串值。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以为您的设置创建合约:

public IApplicationSettings
{
    string ConnectionString { get; }

    // any other setting variable 
}

而不是在你的代码中使用这个抽象

public class MyRepository 
{ 
    private string conncetionString;

    public MyRepository(IApplicationSettings settings)
    {
         this.conncetionString = settings.ConnectionString;
    }
}

通过这种方式,您将隐藏对ConfigurationManager等内容的依赖以及在app中存储设置的方式。如果您使用的是IoC,则可以控制实例的使用寿命。