Bagikan melalui


TraceFilter.ShouldTrace Metode

Definisi

Ketika ditimpa di kelas turunan, menentukan apakah pendengar jejak harus melacak peristiwa.

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

Parameter

cache
TraceEventCache

TraceEventCache yang berisi informasi untuk peristiwa pelacakan.

source
String

Nama sumber.

eventType
TraceEventType

Salah satu nilai yang TraceEventType menentukan jenis peristiwa yang telah menyebabkan jejak.

id
Int32

Nomor pengidentifikasi pelacakan.

formatOrMessage
String

Baik format yang digunakan untuk menulis array argumen yang ditentukan oleh args parameter, atau pesan untuk ditulis.

args
Object[]

Array objek argumen.

data1
Object

Objek data pelacakan.

data
Object[]

Array objek data pelacakan.

Mengembalikan

true untuk melacak peristiwa yang ditentukan; jika tidak, false.

Contoh

Contoh kode berikut menunjukkan cara mengambil ShouldTrace alih metode untuk menunjukkan pelacakan harus terjadi ketika jenis peristiwa pelacakan peristiwa sama dengan 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

Catatan Bagi Implementer

Implementasi metode ini harus dikembalikan true jika peristiwa yang ditentukan oleh parameter yang diteruskan harus dilacak. Jika tidak, metode harus mengembalikan false. Misalnya, filter yang hanya memungkinkan peristiwa kesalahan untuk diteruskan ke pendengar harus memeriksa eventType parameter dan mengembalikan true jika tingkat jenis peristiwa pelacakan diatur ke Error atau lebih besar; jika tidak, itu harus mengembalikan false.

Implementasi metode harus disiapkan untuk menangani null dalam parameter berikut: args, , data1, dataformatOrMessage, dan cache. Jika nilai parameter adalah null, parameter bukan bagian dari peristiwa. Misalnya, jika args parameter adalah null, itu berarti bahwa peristiwa tidak memiliki argumen apa pun. data Jika parameternya adalah null, maka ada satu atau tidak ada objek data. Jika ada satu objek data, objek tersebut akan ditemukan dalam data1 parameter . Alasan perbedaan antara objek data tunggal dan array objek data adalah untuk performa. Tidak ada alasan untuk membuat array objek jika hanya satu objek yang dilacak, seperti biasanya. data Jika parameter tidak null, data1 parameter juga tidak boleh null.

Dijamin bahwa source parameter bukan null dan bukan string kosong ("").

Implementasi metode dapat secara opsional melemparkan pengecualian berikut:

Berlaku untuk