c# Trace.Assert用法


注意:

以Trace類做示例,但Debug類也通用。

 

Trace.Listeners默認是一個System.Diagnostics.DefaultTraceListener類型,這個類型的偵聽器會在斷言時彈出一個對話框,如下代碼:

// using System.Diagnostics;

Trace.Assert(false,"hehe");

 

執行后會出現如下對話框:

hehe

 

方法一就是清空Trace的默認偵聽器,然后加入自己的偵聽器,比如TextWriterTraceListener:

后台:

using System.Diagnostics;
namespace test_trace{
 public class test{
public void main(){
    Trace.Listeners.Clear();

   //自動清空緩沖(即時寫入)

   Trace.AutoFlush=true;

     Trace.Listeners.Add(newTextWriterTraceListener("app.log"));

     Trace.Assert(false,"hehe");
}
}

 

 

第二種方法就是通過修改應用程序集的配置文件(app.config)

<configuration>

<system.diagnostics>

<trace autoflush="true">

<listeners>

<!--刪除默認偵聽器-->

<clear/>

<!--加入偵聽器-->

<add name="listener1" type="System.Diagnostics.TextWriterTraceListener" initializeData="app.log"/>

</listeners>

</trace>

</system.diagnostics>

</configuration>

 

 

 

第三種方法也是在配置文件里,其實<system.diagnostics>元素下有直接對斷言的支持,使用<assert>元素。assertuienabled屬性代表是否顯示斷言對話框,而logfilename代表記錄文件的位置。

<configuration>

<system.diagnostics>

<assert assertuienabled="false" logfilename="app.log"/>

</system.diagnostics>

</configuration>

 

 

 

最后需要注意的是第三種方法輸出的記錄最詳細,而且不需要設置Trace類的屬性。第一行的”hehe”是前兩種方法的輸出。而后面的文字全是第三種方法的輸出。

Fail: hehe

---- DEBUG ASSERTION FAILED ----

---- Assert Short Message ----

hehe

---- Assert Long Message ----

 

 

at Program.Main() e:\users\mgen\documents\visual studio 2010\Projects\Mgen\Mgen\Program.cs(11)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM