TraceFilter.ShouldTrace(TraceEventCache, String, TraceEventType, Int32, String, Object[], Object, Object[]) Metoda

Definicja

Gdy jest zastępowany w klasie pochodnej, określa, czy odbiornik śledzenia ma śledzić zdarzenie.When overridden in a derived class, determines whether the trace listener should trace the event.

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[] -> bool
Public 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

Parametry

cache
TraceEventCache

TraceEventCacheZawiera informacje dotyczące zdarzenia śledzenia.The TraceEventCache that contains information for the trace event.

source
String

Nazwa źródła.The name of the source.

eventType
TraceEventType

Jedna z TraceEventType wartości określająca typ zdarzenia, które spowodowało wynik śledzenia.One of the TraceEventType values specifying the type of event that has caused the trace.

id
Int32

Numer identyfikacyjny śledzenia.A trace identifier number.

formatOrMessage
String

Format używany do pisania tablicy argumentów określonych przez args parametr lub komunikat do zapisu.Either the format to use for writing an array of arguments specified by the args parameter, or a message to write.

args
Object[]

Tablica obiektów argumentów.An array of argument objects.

data1
Object

Obiekt danych śledzenia.A trace data object.

data
Object[]

Tablica obiektów danych śledzenia.An array of trace data objects.

Zwraca

Boolean

true Śledzenie określonego zdarzenia; w przeciwnym razie false .true to trace the specified event; otherwise, false.

Przykłady

Poniższy przykład kodu pokazuje, jak zastąpić metodę, ShouldTrace Aby wskazać, że śledzenie powinno wystąpić, gdy typem zdarzenia śledzenia jest równe TraceEventType.Error .The following code example shows how to override the ShouldTrace method to indicate tracing should occur when the trace event type of the event is equal to 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

Uwagi dotyczące implementowania

Implementacja tej metody powinna zostać zwrócona true , jeśli zdarzenie określone przez przekazywanie parametrów ma być śledzone.Implementations of this method should return true if the event specified by the passed parameters should be traced. W przeciwnym razie metoda powinna zwrócić false .Otherwise the method should return false. Na przykład filtr, który zezwala tylko na przekazywanie zdarzeń błędów do odbiornika powinien sprawdzać eventType parametr i zwracać, true Jeśli poziom typu zdarzenia śledzenia jest ustawiony na Error lub większy; w przeciwnym razie powinien zwrócić false .For example, a filter that allows only error events to pass through to the listener should inspect the eventType parameter and return true if the trace event type level is set to Error or greater; otherwise, it should return false.

Implementacje metody powinny zostać przygotowane do obsłużenia null w następujących parametrach:,,, args data1 data formatOrMessage i cache .Implementations of the method should be prepared to handle null in the following parameters: args, data1, data, formatOrMessage, and cache. Jeśli parametr ma wartość null , parametr nie jest częścią zdarzenia.If the parameter value is null, the parameter is not part of the event. Na przykład jeśli args parametrem jest null , oznacza to, że zdarzenie nie ma żadnych argumentów.For example, if the args parameter is null, it means that the event does not have any arguments. Jeśli data parametr ma wartość null , istnieje jeden lub więcej obiektów danych.If the data parameter is null, then there are either one or no data objects. Jeśli istnieje jeden obiekt danych, zostanie on odnaleziony w data1 parametrze.If there is one data object, it will be found in the data1 parameter. Przyczyną rozróżnienia między pojedynczym obiektem danych i tablicą obiektów danych jest wydajność.The reason for the distinction between a single data object and an array of data objects is for performance. Nie istnieje powód, aby utworzyć tablicę obiektów, jeśli jest śledzony tylko jeden obiekt, podobnie jak zwykle.There is no reason to create an object array if only one object is traced, as is normally the case. Jeśli data parametr nie jest null , parametr nie data1 może być również null .If the data parameter is not null, the data1 parameter must also not be null.

Jest gwarantowane, że source parametr nie jest null ciągiem pustym ("").It is guaranteed that the source parameter is not null and not an empty string ("").

Implementacje metody mogą opcjonalnie zgłosić następujące wyjątki:Implementations of the method can optionally throw the following exceptions:

  • ArgumentNullException if source is null.

  • ArgumentException Jeśli eventType nie jest jedną z TraceEventType wartości.
  • ArgumentException if eventType is not one of the TraceEventType values.
  • -Wyjątki niezwiązane z implementacją metody.- Exceptions unrelated to the implementation of the method. Na przykład ThreadAbortException .For example, a ThreadAbortException.

    Dotyczy