【发布时间】:2011-10-12 04:46:50
【问题描述】:
假设我有一个具有以下结构的应用程序。
// ASP.NET MVC (Web Project)
// Service/Business Layer (Class Library)
// DAL (Class Library)
最初我想在 DAL 类库中使用一个 App.config 文件,该文件将包含如下应用设置:
<appSettings>
<add key="DAL-Assembly" value="DAL.LinqToSql.DataContexts"/>
<add key="DAL-Type" value="DAL.LinqToSql.DataContexts.MyDataContext" />
</appSettings>
然后我会使用工厂通过反射创建数据上下文
public static DataContext GetContext()
{
string assembly = ConfigurationManager.AppSettings("DAL-Assembly");
string type = ConfigurationManager.AppSettings("DAL-Type");
Assembly a = Assembly.Load(assembly);
return (DataContext)a.CreateInstance(type);
}
问题是现在我明白类库必须使用调用应用程序的配置文件。这意味着它将在演示文稿中查找 app.config 或 web.config - 这似乎不正确。
在这种 DAL 情况下,保持 DAL 层中包含的具体 DataContext 规范的最佳方式是什么,而不必在每次更改时都重新构建?或者甚至在更广泛的意义上,将配置保持在 DAL 层外部的最佳方式?
【问题讨论】:
-
抱歉,从第一天起 .NET 就是这样做的。这也是有道理的,因为配置是使用 应用程序。不要将其视为“表示层”。网站是应用程序。
标签: c# asp.net appsettings