TraceFilter.ShouldTrace Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
, , data1
data
, formatOrMessage
, i cache
. Jeśli wartość parametru to null
, parametr nie jest częścią zdarzenia. Jeśli na przykład args
parametr ma null
wartość , oznacza to, że zdarzenie nie ma żadnych argumentów. data
Jeśli parametr ma null
wartość , 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 null
ma 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:
ArgumentNullException jeśli
source
ma wartośćnull
.ArgumentException jeśli
eventType
nie jest jedną z TraceEventType wartości.Wyjątki niepowiązane z implementacją metody . Na przykład .ThreadAbortException