Правильный способ создания и хранения классов утилит / менеджеров в asp.net mvc - PullRequest
1 голос
/ 08 марта 2010

Как создать классы утилит / менеджера для всего приложения, которые считывают настройки из базы данных? Должен ли я использовать статические классы, например

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 голосов
/ 08 марта 2010

Статические классы и методы подходят для такого сценария. Однако обратите внимание на статические переменные - их значение будет разделено между всеми клиентами одного и того же веб-приложения.

Если вы хотите кэшировать результат, но различаете клиентов (сеансы), вы можете поместить его в коллекцию сеансов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...