WF4.0 入门系列(八)Custom Activities and Designers 之二

这一部分主要是结合自定义活动介绍一下在工作流如何使用跟踪Trace,在工作流中进行代码跟踪有两种方式:

1、使用System.Diagnostics.Trace类

2、使用System.Activities.Tracking.CustomTrackingRecord对象

 

我们先看看简单一点的,使用System.Diagnostics.Trace类进行跟踪,先上代码:

switch (Level)
{
    //输出错误处理消息
    case System.Diagnostics.TraceLevel.Error:
        //使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入错误消息
        System.Diagnostics.Trace.TraceError(text);
        break;
    //输出信息性消息、警告和错误处理消息
    case System.Diagnostics.TraceLevel.Info:
        //使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入信息性消息
        Trace.TraceInformation(text);
        break;
    case System.Diagnostics.TraceLevel.Verbose:
        //将类别名称和消息写入 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器。
        Trace.WriteLine(text, Category);
        break;
    case System.Diagnostics.TraceLevel.Warning:
        //使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入警告消息
        Trace.TraceWarning(text);
        break;
}


这是DiagnosticTrace.cs中的一段代码,从中我们可以看到Trace类为我们提供了四个方法,分别是写入错误消息,警告消息,信息性消息或自定义消息(类别名称及消息本身),大家会注意到在代码中的注释我们四次提到了System.Diagnostics.Trace.Listeners 集合,这个Listeners集合就是跟踪消息监听器,它的主要功能就是为监视跟踪和调试输出。只要Trace写需要写入新消息,就会将信息写入Listeners集合中的侦听器,下面我们以WriteLine方法为例,看看Trace的执行过程

[Conditional("TRACE")]
public static void WriteLine(string message, string category)
{
    TraceInternal.WriteLine(message, category);
}


public static void WriteLine(string message, string category)
{
    if (UseGlobalLock)
    {
        lock (critSec)
        {
            foreach (TraceListener listener in Listeners)
            {
                listener.WriteLine(message, category);
                if (AutoFlush)
                {
                    listener.Flush();
                }
            }
            return;
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值