Udostępnij za pośrednictwem


TraceFilter.ShouldTrace Metoda

Definicja

Po przesłonięciu w klasie pochodnej określa, czy odbiornik śledzenia zdarzenia ma być śledzony.

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

Element TraceEventCache zawierający informacje o zdarzeniu śledzenia.

source
String

Nazwa źródła.

eventType
TraceEventType

TraceEventType Jedna z wartości określających typ zdarzenia, które spowodowało śledzenie.

id
Int32

Numer identyfikatora śledzenia.

formatOrMessage
String

Format używany do pisania tablicy argumentów określonych przez args parametr lub komunikat do zapisu.

args
Object[]

Tablica obiektów argumentów.

data1
Object

Obiekt danych śledzenia.

data
Object[]

Tablica obiektów danych śledzenia.

Zwraca

true w celu śledzenia określonego zdarzenia; w przeciwnym razie , false.

Przykłady

Poniższy przykład kodu pokazuje, jak zastąpić metodę wskazującą ShouldTrace , że śledzenie powinno wystąpić, gdy typ zdarzenia śledzenia jest równy 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

Implementacje tej metody powinny być zwracane true , jeśli zdarzenie określone przez przekazane parametry powinno być śledzone. W przeciwnym razie metoda powinna zwrócić wartość false. Na przykład filtr, który zezwala tylko na przekazywanie zdarzeń błędów do odbiornika, powinien sprawdzić eventType parametr i zwrócić true , jeśli poziom typu zdarzenia śledzenia jest ustawiony na Error lub większy; w przeciwnym razie powinien zwrócić wartość false.

Implementacje metody powinny być przygotowane do obsługi null w następujących parametrach: args, , data1data, formatOrMessage, i cache. Jeśli wartość parametru to null, parametr nie jest częścią zdarzenia. Jeśli na przykład args parametr ma nullwartość , oznacza to, że zdarzenie nie ma żadnych argumentów. data Jeśli parametr ma nullwartość , istnieje jeden lub żaden obiekt danych. Jeśli istnieje jeden obiekt danych, zostanie on znaleziony w parametrze data1 . Przyczyną rozróżnienia między pojedynczym obiektem danych a tablicą obiektów danych jest wydajność. Nie ma powodu, aby utworzyć tablicę obiektów, jeśli tylko jeden obiekt jest śledzony, podobnie jak zwykle w przypadku. data Jeśli parametr nie nullma wartości , data1 parametr nie może również mieć wartości null.

Gwarantuje się, że source parametr nie null jest pustym ciągiem ("").

Implementacje metody mogą opcjonalnie zgłaszać następujące wyjątki:

Dotyczy