DiagnosticListener.Subscribe 方法

定義

這些方法可讓您新增訂閱者,其中有些會提供選擇性的事件篩選方法。

多載

Subscribe(IObserver<KeyValuePair<String,Object>>)

新增訂閱者。

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

新增訂閱者,並選擇性地根據其名稱和最多兩個內容事件物件來篩選事件。

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

新增訂閱者,並選擇性地根據其名稱來篩選事件。

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

新增訂閱者,選擇地根據其名稱和最多兩個內容物件來篩選事件,並指定提供者從處理序外部匯入或匯出活動時要呼叫的方法。

Subscribe(IObserver<KeyValuePair<String,Object>>)

來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs

新增訂閱者。

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer);
public IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object))) As IDisposable
Public Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object))) As IDisposable

參數

observer
IObserver<KeyValuePair<String,Object>>

訂閱者。

傳回

介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。

實作

適用於

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs

新增訂閱者,並選擇性地根據其名稱和最多兩個內容事件物件來篩選事件。

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer, Func<System::String ^, System::Object ^, System::Object ^, bool> ^ isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Func<string,object?,object?,bool>? isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Func<string,object,object,bool> isEnabled);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Func(Of String, Object, Object, Boolean)) As IDisposable

參數

observer
IObserver<KeyValuePair<String,Object>>

訂閱者。

isEnabled
Func<String,Object,Object,Boolean>

根據其名稱以及最多兩個內容物件 (可以是 null) 篩選事件的委派;若不需要事件篩選器,則可為 null

傳回

介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。

備註

如果 isEnabled 不是 null,則表示某些事件無法互動,因此可以略過效率。

特定檢測網站可以選擇呼叫一或多個 IsEnabled 多載,其中它會傳遞事件的名稱,以及最多兩個其他 (檢測月臺的特定) 對象作為自變數。 如果進行任何這些 IsEnabled 呼叫,則會使用傳遞的值叫用此 isEnabled 述詞, (如果使用較短的多載, null 則會針對遺漏的內容對象傳遞) 。

這可讓任何特定檢測網站將最多兩項資訊傳遞給訂閱者,以執行複雜且有效率的篩選。 這需要檢測網站與訂閱者程式代碼之間的更多結合。

預期特定檢測月臺可能會針對相同的事件呼叫不同的 多載 IsEnabled ,第一次呼叫 IsEnabled(String),它會使用兩 null 個內容物件呼叫篩選。 如果 isEnabledtrue回 ,它會使用內容物件再次呼叫 。 篩選 isEnabled 應該以此為考慮來設計。

請注意, isEnabled 述詞是選擇性的優化,可讓檢測月臺避免設定承載,並在沒有訂閱者關心時呼叫 Write(String, Object) 。 特別是,檢測月臺可以選擇忽略 IsEnabled 述詞, (不要) 呼叫,而只是呼叫 Write(String, Object)。 因此,如果訂閱者需要篩選,則需要自行執行。

如果此參數為 null,則不會 (傳回 true) 的所有多載IsEnabled進行篩選。

適用於

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs
來源:
DiagnosticListener.cs

新增訂閱者,並選擇性地根據其名稱來篩選事件。

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer, Predicate<System::String ^> ^ isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Predicate<string>? isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Predicate<string> isEnabled);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Predicate<string> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Predicate<string> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Predicate(Of String)) As IDisposable

參數

observer
IObserver<KeyValuePair<String,Object>>

訂閱者。

isEnabled
Predicate<String>

根據其名稱 (String) 篩選事件的委派。 如已啟用事件,委派應傳回 true

傳回

介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。

備註

如果 isEnabled 不是 null,某些事件並不感興趣,而且可以略過以提高效率。 述 isEnabled 詞是選擇性的優化,可讓檢測月臺避免設定承載,並在沒有訂閱者關心時呼叫 Write(String, Object) 。 特別是檢測月臺可以選擇忽略 IsEnabled() 述詞, (不要呼叫述詞) ,而只是呼叫 Write(String, Object)。 因此,如果訂閱者需要篩選,則需要自行執行。

如果 為 nullisEnabled ,則不會 (傳回 true) 的所有多載IsEnabled完成篩選。

適用於

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

來源:
DiagnosticSourceActivity.cs
來源:
DiagnosticSourceActivity.cs
來源:
DiagnosticSourceActivity.cs

新增訂閱者,選擇地根據其名稱和最多兩個內容物件來篩選事件,並指定提供者從處理序外部匯入或匯出活動時要呼叫的方法。

public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Func<string,object?,object?,bool>? isEnabled, Action<System.Diagnostics.Activity,object?>? onActivityImport = default, Action<System.Diagnostics.Activity,object?>? onActivityExport = default);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Func<string,object,object,bool> isEnabled, Action<System.Diagnostics.Activity,object> onActivityImport = default, Action<System.Diagnostics.Activity,object> onActivityExport = default);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> * Action<System.Diagnostics.Activity, obj> * Action<System.Diagnostics.Activity, obj> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> * Action<System.Diagnostics.Activity, obj> * Action<System.Diagnostics.Activity, obj> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Func(Of String, Object, Object, Boolean), Optional onActivityImport As Action(Of Activity, Object) = Nothing, Optional onActivityExport As Action(Of Activity, Object) = Nothing) As IDisposable

參數

observer
IObserver<KeyValuePair<String,Object>>

訂閱者。

isEnabled
Func<String,Object,Object,Boolean>

根據事件的名稱以及最多兩個內容物件 (可以是 null) 來篩選事件的委派;若不需要事件篩選器,則可為 null

onActivityImport
Action<Activity,Object>

動作委派,可接收受外部事件影響的活動,以及表示傳入要求的物件。

onActivityExport
Action<Activity,Object>

動作委派,可接收受外部事件影響的活動,以及表示傳出要求的物件。

傳回

介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。

備註

如果 isEnabled 為非 Null,則可以略過某些事件不具關聯性,以提升效率。

您也可以提供當提供者從進程外部匯入或導出 (活動時所呼叫的 'onActivityImport' 和 'onActivityExport' 方法,例如,從 HTTP 要求) 。 匯入或匯出活動之後會呼叫這些方法,並可用來修改活動或傳出要求以新增原則。

適用於