2009-04-14 5 views
0

Я нашел несколько фрагментов информации, относящихся к app.config/web.config, которая подсказывает почти без кодовую конфигурацию компонентов BCL непосредственно через app.config. Однако, учитывая количество тегов, предложенных intellisense в app.config, это говорит о том, что для этого существует огромное количество возможностей, которые я не могу найти любой полезной информации для.Как настроить библиотеки базового класса в файле app.config?

Есть ли документация, которая поддерживает эту конкретную область файлов конфигурации? Я могу найти много информации о хранении/извлечении информации о конфигурации и о небольшом количестве вопросов, связанных с написанием пользовательских разделов конфигурации, с которыми я знаком, но я не могу найти никакой информации о настройке компонентов BCL таким образом. У кого-нибудь есть справочные материалы для этого?

Одним из примеров я наткнулся следующим образом:

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

Какой может быть потреблен с использованием кода аналогичным образом к этому:

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

ответ

2

Одним полезным ресурсом являются файлы конфигурации на уровне машины. Фактические файлы имеют голые кости, но рядом с ними есть файлы «.comments», которые дают довольно подробные примеры того, что можно достичь. Например, посмотрите на

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

Это даст вам некоторое представление о том, что достижимо , В любом месте, где вы видите элементы коллекции, как в случае элементов <traceSwitches> и <traceListeners>, отдельные элементы <add>, содержащиеся внутри, могут варьироваться в зависимости от того, что вы добавляете (то есть конкретные атрибуты этих элементов <add> будут варьироваться в зависимости от того, добавление в сборник). Для этого вам необходимо обратиться к конкретным областям документации, но поиск элемента <traceSwitches> в MSDN должен служить хорошей отправной точкой.

+0

Спасибо, это никоим образом не дает мне всю информацию, которую я ищу, но это, безусловно, дает мне огромный указатель в правильном направлении ... – BenAlabaster

0

Они все настраивается таким образом. Вот почему вы ничего не нашли.

Хорошо, возможно не все, но, конечно, самый. Если вы хотите знать, используйте Reflector, чтобы найти все производные классы System.configuration.ConfigurationSection и т. Д.

+0

На самом деле, нет документации по этому поводу? Я имею в виду, вы не можете просто предположить, что разработчики собираются понять это только потому, что все это делают ... – BenAlabaster

 Смежные вопросы

  • Нет связанных вопросов^_^