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