3 Stimmen

Globale Konstanten in separater Datei. Ist das eine gute Idee?

Ich bin derzeit auf ASP.NET MVC-Anwendung arbeiten. Ich plane, eine statische Klasse zu erstellen, wo ich plane, alle globalen String-Konstanten wie Sitzungsnamen zu halten.

Der Grund, warum ich zögere, ist, dass es irgendwie stinkt, aber ich kenne keine bessere Alternative.

Bitte zeigen Sie mir, wie man globale Konstanten definiert.

4voto

jim tollan Punkte 22065

Vadim,

Ich mache genau das, was Sie vorschlagen und verwende eine statische Klasse für diesen Zweck. Sie haben dann den Vorteil von stark typisierten Accessors PLUS der Möglichkeit, Überschreibungen (in Form von Methoden) hinzuzufügen, wenn Sie diese benötigen.

hier ein Ausschnitt:

public static class Config
{
    private const string NotSet = "**VALUE NOT SET**";
    private const int pageSize = 5;

    public static string CustomCache
    {
        get
        {
            return ConfigurationManager.AppSettings["CustomCache"] ?? NotSet;
        }
    }

    public static int PageSize
    {
        get
        {
            // simple default - no setter
            return pageSize; 
        }
    }
}

typische Verwendung:

items = _repository.GetPaged(pageNumber, Config.PageSize)

In der obigen Klasse werden einige Einstellungen von den App-Einstellungen in der web.config als "2. Generation" bezeichnet, aber mit starker Typisierung in den Klassen, um die Fehlerprüfung zur Laufzeit zu gewährleisten usw. Andere sind rein statische Einstellungen, die in der Klasse definiert sind.

Es ist die Flexibilität, all das zu tun, die (meiner Meinung nach) diesen Ansatz sowohl attraktiv als auch eine echte Stärke macht.

1voto

Otávio Décio Punkte 72052

Eine andere Alternative wäre die Erstellung einer Ressourcen-Datei (.resx). Wenn es sich um konfigurierbare Werte handelt, können sie in der Datei web.config oder in einer Konfigurationstabelle der Datenbank abgelegt werden.

0voto

Nick Hartley Punkte 136

Sie können die Datei global.asax für diesen Zweck verwenden - ich würde Accessors für sie verwenden, z. B.

private static int var ;

public static int VAR
{
   get { return var ; }
}

0voto

Keith Punkte 5219

Unabhängig davon, ob es sich um MVC oder Webformulare handelt, verwende ich eine Kombination aus Datenbankeinträgen (für Site-Einstellungen, die über das Dashboard geändert werden können) und web.config appSettings (für Site-Einstellungen, die sich nicht oft oder gar nicht ändern, d. h. konstant sind).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X