2009-04-14 5 views
0

J'ai trouvé quelques extraits d'informations relatives à app.config/web.config qui font allusion à la configuration presque sans code des composants BCL directement via app.config. Cependant, compte tenu de la quantité de tags suggérés par l'intellisense au sein de l'app.config, cela suggère qu'il y a une énorme quantité de possibilités pour cela que je ne peux pas trouver des informations utiles pour.Comment configurer les bibliothèques de classes de base dans mon fichier app.config?

Existe-t-il une documentation prenant en charge cette zone particulière de fichiers de configuration? Je peux trouver beaucoup d'informations sur le stockage/récupération des informations de configuration et un peu sur l'écriture de sections de configuration personnalisées que je connais, mais je ne trouve aucune information concernant la configuration des composants BCL de cette façon. Quelqu'un at-il des documents de référence pour cela?

Un exemple que je suis venu à travers est la suivante:

<?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> 

qui peut être consommé en utilisant le code de manière similaire à ceci:

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")); 
    } 
    } 
} 

Répondre

2

Une ressource utile est les fichiers de configuration au niveau machine. Les fichiers réels sont vides, mais il y a des fichiers ".comments" à côté d'eux qui donnent des exemples assez détaillés de ce qui peut être réalisé. Par exemple, jetez un oeil à

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

Cela vous donnera une idée de ce qui est réalisable . Partout où vous voyez des éléments de collection, comme dans le cas des éléments <traceSwitches> et <traceListeners>, les éléments individuels <add> contenus dans peuvent varier en fonction de ce que vous ajoutez (par exemple, les attributs spécifiques sur ces éléments varient en fonction de ce que vous êtes ajouter à la collection). Pour cela, vous devrez consulter des zones spécifiques de la documentation, mais la recherche de l'élément <traceSwitches> dans MSDN devrait servir de point de départ décent.

+0

Merci, ça ne me donne pas toutes les informations que je recherche, mais certainement me donne un énorme pointeur dans la bonne direction ... – BenAlabaster

0

Ils sont tous configurables de cette façon. C'est pourquoi vous ne trouvez rien.

Ok, peut-être pas tout, mais certainement le plus. Si vous voulez savoir, utilisez Reflector pour trouver toutes les classes dérivées de System.configuration.ConfigurationSection, etc.

+0

Pour de vrai, il n'y a aucune documentation à ce sujet? Je veux dire, vous ne pouvez pas supposer que les développeurs vont le découvrir simplement parce qu'ils le font tous ... – BenAlabaster

Questions connexes