2013-03-08 3 views
6

Ich bin gespannt, wie die web.config in eine Anwendung geladen wird, ist irgendein Verweis auf Werte in der web.config tatsächlich die Datei web.config analysieren oder beim Start der Anwendung lädt die Werte in ein Singleton oder etwas?Wie werden nach dem Start der Anwendung die Werte aus web.config gelesen?

Das kam mir in den Sinn, als ich für einen Wert in der web.config auf einer pro Anfrage und in den global.asax.cs überprüfen wollte:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if(ConfigurationManager.AppSettings["abc"] != null) 
    { 


    } 
} 

Antwort

4

Wenn eine Anwendung zuerst eine Anfrage erhält, werden die Konfigurationsdatei (en) analysiert und ihre Einstellungen geladen. Diese Einstellungen werden dann zwischengespeichert, sodass bei jedem nachfolgenden Aufruf die Konfigurationsdatei (en) nicht erneut analysiert werden muss. Wenn eine Konfigurationsdatei geändert wird, wird die Anwendung neu gestartet und neu kompiliert.

http://msdn.microsoft.com/en-us/library/ms178685.aspx#calculating_configuration_settings_at_runtime

+1

[Bearbeiten von ASP.NET-Konfigurationsdateien] (http://msdn.microsoft.com/en-us/library/ackhksh7.aspx) – Brandon

3

Die Konfiguration wird deserialisiert beim Anwendungsstart in die entsprechenden ConfigurationSection Typen.

Diese sind normalerweise mit Nur-Lese-Eigenschaften implementiert, so dass sie tatsächlich in einem Singleton verwendet werden können.

+0

Nein, was ich meine ist, sie Typen Klassen Configuration, die generiert bekommen, sind sie sehr schnell dann richtig? h. nicht nach einer Konfigurationsdatei für jede Suche suchen? – loyalflow

+0

@ user1361315 - Sie werden nicht generiert. Sie sind bereits vorhanden - die Instanz wird beim Start gefüllt und das sind Abfragen. Die Datei wird also beim Start nur einmal gelesen. – Oded

Verwandte Themen