2009-04-14 54 views
0

我發現了一些與app.config/web.config有關的信息片斷,這些信息直接通過app.config提示BCL組件的無代碼配置。但是,考慮到app.config中intellisense建議的標籤數量,這表明存在大量的可能性,因此我找不到任何有用的信息。如何在我的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」文件,它們給出了可以實現的相當詳細的例子。例如,拿在

下的樣子:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ CONFIG \ machine.config.comments

這會給你一個什麼樣的實現一些想法。在任何您看到收集元素的地方,例如<traceSwitches><traceListeners>元素,其中包含的個人<add>元素可能會因您添加的內容而異(即這些<add>元素上的特定屬性將根據您的具體情況而有所不同添加到集合中)。爲此,您需要查閱文檔的特定區域,但在MSDN中搜索<traceSwitches>元素應該作爲一個體面的起點。

+0

謝謝,它絕不會給我所有我想要的信息,但它肯定會給了我一個正確的方向巨大的指針... – BenAlabaster 2009-04-14 22:33:55

0

他們這樣都是可配置的。這就是爲什麼你沒有找到任何東西。

好吧,也許不是全部,但肯定是最。如果你想知道,使用Reflector來查找System.configuration.ConfigurationSection的所有派生類,等等。

+0

真的,這裏沒有任何文檔嗎?我的意思是,你不能僅僅假設開發人員會想出來就是因爲他們都這麼做...... – BenAlabaster 2009-04-14 20:38:21

相關問題