在asp.net mvc中创建和存储实用程序/管理器类的正确方法

时间:2010-03-08 17:06:03

标签: asp.net-mvc

我应该如何创建从数据库中读取设置的应用程序范围的实用程序/管理器类? 我应该使用静态类,例如

public static class ThemeHelper
{
    private static string themeDirectory { get; private set; }

    static ThemeHelper()
    {
        // read from the database
        themeDirectory = "blue-theme";
    }

    public static string ResolveViewPath(string viewName)
    {
            string path = string.Format("~/themes/{0}/{1}.aspx", themeDirectory, viewName);
            // check if file exists...
            // if not, use default
            return path;
    }
}

或普通类的静态实例,例如存储在HttpApplicationState中? 或者我应该使用依赖注入库(如Ninject)?

1 个答案:

答案 0 :(得分:0)

静态类和方法适用于这种情况。但请注意静态变量 - 它们的值将在同一Web应用程序的所有客户端之间共享。

如果您希望缓存结果但区分客户端(会话),则可以将其删除到Session集合。