c# - 总是遍历业务层到达数据层?

标签 c# .net design-patterns

我已经使用单独项目中的公共(public)层设置了我的 VS 解决方案:表示层、业务层、实体层和数据访问层。我在 DAL 中有这个静态类 AppSettings,我想在 Globla.asax.cs 的 Application_Start 调用它的 Load() 方法。它基本上从 web.config 加载我的应用程序设置。

我的问题是:我应该创建一个业务逻辑类来从我的表示层访问它,还是我可以直接从我的表示层访问我的 AppSettings 到数据访问层(忽略业务层)。

如果是这样,是否所有事情都一样?我必须始终通过业务层才能到达数据层吗?

public static class AppSettings
{
    public static int ApplicationID { get; set; }
    public static string ServiceEndpoint { get; set; }
    public static string ServiceCode { get; set; }
    public static string ConnectionString { get; set; }

    public static void Load()
    {
        //Connection String
        AppSettings.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["USpace"].ConnectionString;

        //Applicatin Settings
        AppSettings.ApplicationID = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["AppID"]);
        AppSettings.ServiceEndpoint = (string)System.Configuration.ConfigurationManager.AppSettings["ServiceEndpoint"];
        AppSettings.ServiceCode = (string)System.Configuration.ConfigurationManager.AppSettings["ServiceCode"];
    }
}

如果我必须通过业务逻辑层,BLL 的类将如下所示?

public static class BLLAppSettings
{
    public static int ApplicationID
    {
        get
        {
            AppSettings.ApplicationID
        }
    }
 ...

最佳答案

我建议始终通过业务逻辑层来访问数据层,以便业务逻辑层中内置的所有安全措施都能发挥作用。您是否希望在没有业务层的情况下使用数据层?

关于c# - 总是遍历业务层到达数据层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019430/

相关文章:

c# - 在组合框中存储一列数据

c# - Entity Framework Code First - 虚拟属性列命名

c# - .Net 中的优先级队列

python - 实现此 Python 代码的最佳方式是什么

c++ - 使用单例模式的简单 C++ 记录器

java - 单例模式的正确使用

c# - ASP.NET Web API 2 - 在 Release模式下不在响应正文中抛出异常

c# - ASP.Net MVC 2.0 : EditorFor setting name via attributes

c# - 为什么Rx buffer在buffer不包含items的情况下会继续执行method?

c# - 在 c# 中的字符串中使用 "*"