【问题标题】:SettingsProvider class - should it be in DAL or BLL project?SettingsProvider 类 - 它应该在 DAL 还是 BLL 项目中?
【发布时间】:2015-09-07 19:51:07
【问题描述】:

我的应用层中有:Web、DAL 和 BLL。

我应该在哪里放置 SettingsProvider 类(从 web.config 获取值)?我认为它应该在 DAL 项目中。我说的对吗?

public class SettingsProvider : ISettingsProvider
{
    public string UploadImagesPath
    {
        get { return ConfigurationManager.AppSettings["UploadImagesPath"]; }
    }

    ..............
}

【问题讨论】:

    标签: c# data-access-layer bll


    【解决方案1】:

    我不同意有一个合适的层供您放置该类,因为您根据提供的键从 配置文件 中读取值,并且其中一个或全部可能需要它层。在所有层都使用这个类的情况下,您也可以设置一个通用的类库项目,并在需要的层中引用它。

    【讨论】:

    • 好的,我可以创建基础设施项目并将其移动到那里。
    • 绝对是。它好多了,因为您可能必须创建跨层所需的其他类,然后您可以适当地更新您的类库项目。
    • 如果这个类只读取来自web.config的值,我建议你把Interface去掉,改成static class
    【解决方案2】:

    由于设置特定于 Web 应用程序(因为它们是在 Web.config 中定义的),我认为您应该将其放在 Web 应用程序中,并以某种方式将它们“发送”到 BLL 或 DAL,只要合适。并且由于您已经定义了 ISettingsProvider 接口,您可以使用一些 IoC 容器并在 Web 的引导方法(或类似的方法)上注册此接口。或者只是将您的 ISettingsProvider(可能是静态变量)从 Web 应用程序发送到 DAL 和 BLL。

    【讨论】:

      猜你喜欢
      • 2012-04-27
      • 2013-02-06
      • 1970-01-01
      • 2017-08-05
      • 2016-02-17
      • 2011-06-06
      • 1970-01-01
      • 2011-04-10
      • 2014-08-08
      相关资源
      最近更新 更多