2009-04-14 3 views
0

Ich habe ein paar Informationsschnipsel zu app.config/web.config gefunden, die eine fast codelose Konfiguration von BCL-Komponenten direkt über die app.config anzeigen. Angesichts der Menge an Tags, die vom IntelliSense in der app.config vorgeschlagen wird, schlägt es jedoch vor, dass es eine riesige Menge an Möglichkeiten dafür gibt, die ich nicht finden kann alle nützliche Informationen für.Wie konfiguriere ich Basisklassenbibliotheken in meiner app.config-Datei?

Gibt es Dokumentation, die diesen bestimmten Bereich von Konfigurationsdateien unterstützt? Ich kann viele Informationen zum Speichern/Abrufen von Konfigurationsinformationen und eine kleine Menge bezüglich des Schreibens von benutzerdefinierten Konfigurationsabschnitten finden, die mir vertraut sind, aber ich kann keine Informationen bezüglich der Konfiguration von BCL-Komponenten auf diese Weise finden. Hat jemand dafür Referenzmaterial?

Ein Beispiel ich kenne ist wie folgt:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
    <trace autoflush="true" indentsize="2"> 
     <listeners> 
     <add name="Console" 
      type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
       traceOutputOptions="Timestamp" /> 
     </listeners> 
    </trace> 
    <switches> 
     <add name="Logging.Program.Listener" value="Error" /> 
    </switches> 
    </system.diagnostics> 
</configuration> 

, die in ähnlicher Weise wie dies unter Verwendung von Code verbraucht werden können:

class Program 
{ 
    private static TextWriterTraceListener tw = new TextWriterTraceListener(); 
    private static TraceSwitch ts = new TraceSwitch("Logging.Program.Listener", "Default Logging Level", "Off"); 

    static void Main(string[] args) 
    { 
    Trace.Listeners.Add(tw); 

    try 
    { 
     throw (new EntryPointNotFoundException()); 
    } 
    catch (EntryPointNotFoundException ex) 
    { 
     string TraceMessage = "Trace {0}: {1}"; 
     Trace.WriteLineIf(ts.TraceError, String.Format(TraceMessage, TraceLevel.Error, "Error Level Message")); 
     Trace.WriteLineIf(ts.TraceWarning, String.Format(TraceMessage, TraceLevel.Warning, "Warning Level Message")); 
     Trace.WriteLineIf(ts.TraceInfo, String.Format(TraceMessage, TraceLevel.Info, "Info Level Message")); 
     Trace.WriteLineIf(ts.TraceVerbose, String.Format(TraceMessage, TraceLevel.Verbose, "Verbose Level Message")); 
    } 
    } 
} 

Antwort

2

Eine nützliche Ressource sind die Konfigurationsdateien auf Maschinenebene. Die eigentlichen Dateien sind reine Knochen, aber es gibt ".comments" -Dateien neben ihnen, die ziemlich detaillierte Beispiele dafür geben, was erreicht werden kann. Nehmen wir zum Beispiel einen Blick in

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config.comments

Dass Sie eine Vorstellung davon geben wird, was erreichbar ist . Überall dort, wo Sie Auflistungselemente sehen, wie im Fall der Elemente <traceSwitches> und <traceListeners>, können die einzelnen darin enthaltenen Elemente abhängig davon variieren, was Sie hinzufügen (dh die spezifischen Attribute auf diesen Elementen variieren je nachdem, was genau Sie sind Hinzufügen zur Sammlung). Dazu müssen Sie bestimmte Dokumentationsbereiche konsultieren. Die Suche nach dem Element <traceSwitches> in MSDN sollte jedoch als guter Ausgangspunkt dienen.

+0

Danke, es gibt mir auf keinen Fall alle Informationen, die ich suche, aber sicherlich gibt mir einen riesigen Zeiger in die richtige Richtung ... – BenAlabaster

0

Sie sind alle auf diese Weise konfiguriert werden. Deshalb findest du nichts.

Ok, vielleicht nicht alle, aber sicherlich die meisten. Wenn Sie wissen möchten, verwenden Sie Reflector, um alle abgeleiteten Klassen von System.configuration.ConfigurationSection usw. zu finden.

+0

Für echte es gibt keine Dokumentation irgendwo in Bezug auf diese? Ich meine, Sie können nicht einfach davon ausgehen, dass Entwickler es herausfinden werden, nur weil sie das alle tun ... – BenAlabaster

Verwandte Themen