TraceFilter.ShouldTrace 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在衍生的類別中進行覆寫時,判斷追蹤接聽程式是否應該追蹤事件。
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
參數
- cache
- TraceEventCache
TraceEventCache,其中包含追蹤事件的資訊。
- source
- String
來源的名稱。
- eventType
- TraceEventType
其中一個 TraceEventType 值,可指定引發追蹤的事件類型。
- id
- Int32
追蹤識別項號碼。
- formatOrMessage
- String
供撰寫由 args
參數所指定引數之陣列使用的格式,或是要撰寫的訊息。
- args
- Object[]
引數物件的陣列。
- data1
- Object
追蹤資料物件。
- data
- Object[]
追蹤資料物件的陣列。
傳回
如果要追蹤指定的事件,則為 true
,否則為 false
。
範例
下列程式代碼範例示範如何覆寫 ShouldTrace 方法,以指出當事件的追蹤事件類型等於 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
給實施者的注意事項
如果應該追蹤傳遞的參數所指定的事件,這個方法的實作應該會傳回 true
。 否則,方法應該會傳回 false
。 例如,只允許錯誤事件傳遞至接聽程式的篩選應該檢查 eventType
參數,並在追蹤事件類型層級設定Error為或更新時傳回 ,否則應該傳回 true
false
。
方法的實作應該準備好在下列參數中處理 null
: args
、 data1
、、 data
、 formatOrMessage
和 cache
。 如果參數值為 null
,則參數不是 事件的一部分。 例如,如果 args
參數是 null
,表示事件沒有任何自變數。 data
如果 參數為 null
,則有一個或沒有數據物件。 如果有一個數據物件,則會在 參數中找到 data1
它。 單一數據對象與數據物件陣列之間的差異的原因是效能。 如果只追蹤一個物件,就沒有理由建立物件陣列,就像一般情況一樣。 data
如果參數不是 null
,參數data1
也必須不是 null
。
它保證 source
參數不是 null
,而不是空字串 (“”) 。
方法的實作可以選擇性地擲回下列例外狀況:
如果
source
為null
,則為 ArgumentNullException,ArgumentException 如果
eventType
不是其中一個值,則 TraceEventType 為 。與方法實作無關的例外狀況。 例如, ThreadAbortException。