DiagnosticListener.Subscribe 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這些方法可讓您新增訂閱者,其中有些會提供選擇性的事件篩選方法。
多載
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>>)
新增訂閱者。
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>)
新增訂閱者,並選擇性地根據其名稱和最多兩個內容事件物件來篩選事件。
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>>
訂閱者。
傳回
介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。
備註
如果 isEnabled
不是 null
,則表示某些事件無法互動,因此可以略過效率。
特定檢測網站可以選擇呼叫一或多個 IsEnabled 多載,其中它會傳遞事件的名稱,以及最多兩個其他 (檢測月臺的特定) 對象作為自變數。 如果進行任何這些 IsEnabled 呼叫,則會使用傳遞的值叫用此 isEnabled
述詞, (如果使用較短的多載, null
則會針對遺漏的內容對象傳遞) 。
這可讓任何特定檢測網站將最多兩項資訊傳遞給訂閱者,以執行複雜且有效率的篩選。 這需要檢測網站與訂閱者程式代碼之間的更多結合。
預期特定檢測月臺可能會針對相同的事件呼叫不同的 多載 IsEnabled
,第一次呼叫 IsEnabled(String),它會使用兩 null
個內容物件呼叫篩選。 如果 isEnabled
傳 true
回 ,它會使用內容物件再次呼叫 。 篩選 isEnabled
應該以此為考慮來設計。
請注意, isEnabled
述詞是選擇性的優化,可讓檢測月臺避免設定承載,並在沒有訂閱者關心時呼叫 Write(String, Object) 。 特別是,檢測月臺可以選擇忽略 IsEnabled 述詞, (不要) 呼叫,而只是呼叫 Write(String, Object)。 因此,如果訂閱者需要篩選,則需要自行執行。
如果此參數為 null
,則不會 (傳回 true
) 的所有多載IsEnabled進行篩選。
適用於
Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)
新增訂閱者,並選擇性地根據其名稱來篩選事件。
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>>
訂閱者。
傳回
介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。
備註
如果 isEnabled
不是 null
,某些事件並不感興趣,而且可以略過以提高效率。 述 isEnabled
詞是選擇性的優化,可讓檢測月臺避免設定承載,並在沒有訂閱者關心時呼叫 Write(String, Object) 。 特別是檢測月臺可以選擇忽略 IsEnabled() 述詞, (不要呼叫述詞) ,而只是呼叫 Write(String, Object)。 因此,如果訂閱者需要篩選,則需要自行執行。
如果 為 null
isEnabled
,則不會 (傳回 true
) 的所有多載IsEnabled完成篩選。
適用於
Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)
新增訂閱者,選擇地根據其名稱和最多兩個內容物件來篩選事件,並指定提供者從處理序外部匯入或匯出活動時要呼叫的方法。
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>>
訂閱者。
根據事件的名稱以及最多兩個內容物件 (可以是 null
) 來篩選事件的委派;若不需要事件篩選器,則可為 null
。
傳回
介面的參考,這個介面允許接聽程式在 DiagnosticSource 完成通知的傳送前停止接收通知。
備註
如果 isEnabled
為非 Null,則可以略過某些事件不具關聯性,以提升效率。
您也可以提供當提供者從進程外部匯入或導出 (活動時所呼叫的 'onActivityImport' 和 'onActivityExport' 方法,例如,從 HTTP 要求) 。 匯入或匯出活動之後會呼叫這些方法,並可用來修改活動或傳出要求以新增原則。