从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中的连接字符串值。
有什么建议吗?
答案 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,则可以控制实例的使用寿命。