TraceFilter.ShouldTrace 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生的类中进行重写时,确定跟踪侦听器是否应跟踪事件。
public:
 abstract bool ShouldTrace(System::Diagnostics::TraceEventCache ^ cache, System::String ^ source, System::Diagnostics::TraceEventType eventType, int id, System::String ^ formatOrMessage, cli::array <System::Object ^> ^ args, System::Object ^ data1, cli::array <System::Object ^> ^ data);public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache? cache, string source, System.Diagnostics.TraceEventType eventType, int id, string? formatOrMessage, object?[]? args, object? data1, object?[]? data);public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data);abstract member ShouldTrace : System.Diagnostics.TraceEventCache * string * System.Diagnostics.TraceEventType * int * string * obj[] * obj * obj[] -> boolPublic MustOverride Function ShouldTrace (cache As TraceEventCache, source As String, eventType As TraceEventType, id As Integer, formatOrMessage As String, args As Object(), data1 As Object, data As Object()) As Boolean参数
- cache
- TraceEventCache
包含跟踪事件的信息的 TraceEventCache。
- source
- String
源的名称。
- eventType
- TraceEventType
TraceEventType 值之一,指定引发跟踪的事件类型。
- id
- Int32
跟踪标识符编号。
- formatOrMessage
- String
写入由 args 参数指定的变量数组时使用的格式,或者要写入的消息。
- args
- Object[]
参数对象的数组。
- data1
- Object
跟踪数据对象。
- data
- Object[]
跟踪数据对象的数组。
返回
若要跟踪指定的事件,则为 true;否则为 false。
示例
下面的代码示例演示如何重写 方法, ShouldTrace 以指示当事件的跟踪事件类型等于 TraceEventType.Error时应进行跟踪。
public ref class ErrorFilter : TraceFilter
{
public:
    virtual bool ShouldTrace(TraceEventCache^ cache, String^ source,
        TraceEventType eventType, int id, String^ formatOrMessage,
        array<Object^>^ args, Object^ data, array<Object^>^ dataArray) override
    {
        return eventType == TraceEventType::Error;
    }
};
public class ErrorFilter : TraceFilter
{
    override public bool ShouldTrace(TraceEventCache cache, string source,
        TraceEventType eventType, int id, string formatOrMessage,
        object[] args, object data, object[] dataArray)
    {
        return eventType == TraceEventType.Error;
    }
}
Public Class ErrorFilter
    Inherits TraceFilter
    Public Overrides Function ShouldTrace ( cache As TraceEventCache, _
                source As String, eventType As TraceEventType, _
                id As Integer, formatOrMessage As String, _
                args As Object(), data As Object, _
                dataArray As Object() ) As Boolean
        If eventType = TraceEventType.Error Then
            Return True
        Else
            Return False
        End If
    End Function
End Class
实施者说明
如果应跟踪由传递的参数指定的事件,则此方法的实现应返回 true 。 否则,该方法应返回 false。 例如,仅允许错误事件传递到侦听器的筛选器应检查 eventType 参数,并在跟踪事件类型级别设置为 Error 或更高时返回 true ;否则,它应返回 false。
方法的实现应准备好在以下参数中处理null:、、datadata1、 formatOrMessage和 cache。 args 如果参数值为 null,则参数不是 事件的一部分。 例如,如果 args 参数为 null,则表示事件没有任何参数。 
              data如果 参数为 null,则存在一个或没有数据对象。 如果有一个数据对象,则会在 参数中找到 data1 它。 区分单个数据对象和数据对象数组的原因是为了性能。 如果只跟踪一个对象,则没有理由创建对象数组,就像通常的情况一样。 
              data如果参数不是 null,则data1参数也不得为 null。
可以保证 source 参数不是 null ,也不是空字符串 (“”) 。
方法的实现可以选择引发以下异常:
- 如果 - source为- null,则返回 ArgumentNullException。
- ArgumentException 如果 - eventType不是值之一,则 TraceEventType 为 。
- 与 方法的实现无关的异常。 例如,。ThreadAbortException