SettingsProvider class - 它应该在 DAL 还是 BLL 项目中?

SettingsProvider class - should it be in DAL or BLL project?

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

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

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

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

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

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