Asp.net 连接字符串访问
从Web.config文件获取连接字符串的最佳方法是什么。我知道它可以在App_start中的Global.asax中使用Asp.net 连接字符串访问,asp.net,asp.net-mvc,asp.net-web-api,Asp.net,Asp.net Mvc,Asp.net Web Api,从Web.config文件获取连接字符串的最佳方法是什么。我知道它可以在App_start中的Global.asax中使用 public class Global : System.Web.HttpApplication { public static readonly string ConnectionString = "connection information"; . . . } 但是,如何在多个程序集中获取静态变量 假设我的web应用程序有4个程序集
public class Global : System.Web.HttpApplication
{
public static
readonly string ConnectionString = "connection information";
. . .
}
但是,如何在多个程序集中获取静态变量
假设我的web应用程序有4个程序集(UI、服务层、业务层、数据层),我希望访问DataLayer(这是一个单独的程序集)
我不想将配置读取放在数据层构造函数中
我想使用httpapplicationvariable/static变量读取数据层中的连接字符串值
有什么建议吗?您可以为您的设置创建一个合同:
public IApplicationSettings
{
string ConnectionString { get; }
// any other setting variable
}
然后在代码中使用这个抽象
public class MyRepository
{
private string conncetionString;
public MyRepository(IApplicationSettings settings)
{
this.conncetionString = settings.ConnectionString;
}
}
通过这种方式,您将隐藏对
ConfigurationManager
等内容的依赖关系,以及在应用程序中存储设置的方式。如果您使用的是IoC,那么您可以控制实例的生命周期。“我想使用HttpApplication变量/静态变量来读取数据层中的连接字符串值。”,这是错误的方法。您正在使层与ASP.Net紧密耦合。如果您必须在不同的应用程序(如WinForm或WPF)中使用层,该怎么办?你不应该那样做。将连接字符串传递给构造函数是一种更好的方法,IMHO.Im不使用实体框架