Sdílet prostřednictvím


TraceFilter.ShouldTrace Metoda

Definice

Při přepsání v odvozené třídě určuje, zda by měl trasovací naslouchací proces trasovat událost.

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

Obsahuje TraceEventCache informace o události trasování.

source
String

Název zdroje.

eventType
TraceEventType

Jedna z TraceEventType hodnot určující typ události, která způsobila trasování.

id
Int32

Číslo identifikátoru trasování.

formatOrMessage
String

Buď formát, který se má použít pro zápis pole argumentů určené parametrem args , nebo zpráva k zápisu.

args
Object[]

Pole argumentových objektů.

data1
Object

Datový objekt trasování.

data
Object[]

Pole datových objektů trasování.

Návraty

truetrasování zadané události; v opačném případě . false

Příklady

Následující příklad kódu ukazuje, jak přepsat metodu ShouldTrace , která označuje, že by mělo dojít k trasování, když je typ události trasování události rovna 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

Poznámky pro implementátory

Implementace této metody by měly vrátit true , pokud událost určená předanými parametry by měla být trasována. V opačném případě by metoda měla vrátit false. Například filtr, který umožňuje předávání pouze chybových událostí do naslouchacího procesu, by měl zkontrolovat eventType parametr a vrátit true , pokud je úroveň typu události trasování nastavená na Error hodnotu nebo vyšší. V opačném případě by měl vrátit falsehodnotu .

Implementace metody by měly být připravené pro zpracování null v následujících parametrech: args, data1, data, formatOrMessagea cache. Pokud je nullhodnota parametru , parametr není součástí události. Pokud args je nullnapříklad parametr , znamená to, že událost nemá žádné argumenty. data Pokud je nullparametr , existuje jeden nebo žádný datový objekt. Pokud existuje jeden datový objekt, najdete ho v parametru data1 . Důvodem rozdílu mezi jedním datovým objektem a polem datových objektů je výkon. Není důvod vytvářet pole objektů, pokud je trasován pouze jeden objekt, jak je to obvykle. Pokud parametr data není null, data1 nesmí být nullparametr také .

Je zaručeno, že source parametr není null prázdný řetězec ("").

Implementace metody mohou volitelně vyvolat následující výjimky:

Platí pro