DiagnosticListener.Subscribe メソッド

定義

これらのメソッドを使用するとサブスクライバーを追加でき、その一部でオプションのイベント フィルター メソッドが提供されます。

オーバーロード

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

サブスクライバーを追加します。

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

サブスクライバーを追加し、任意で、その名前と最大 2 つのコンテキスト オブジェクトに基づいてイベントをフィルタリングします。

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

サブスクライバーを追加し、任意で、その名前に基づいてイベントをフィルタリングします。

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

サブスクライバーを追加し、任意で、その名前と最大 2 つのコンテキスト オブジェクトに基づいてイベントをフィルタリングし、プロバイダーがプロセスの外からアクティビティをインポートまたはエクスポートするときに呼び出すメソッドを指定します。

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

サブスクライバーを追加し、任意で、その名前と最大 2 つのコンテキスト オブジェクトに基づいてイベントをフィルタリングします。

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>

その名前と最大 2 つのコンテキスト オブジェクト (null が可能) に基づいてイベントをフィルタリングするデリゲートです。あるいは、イベント フィルターが望ましくない場合、null

戻り値

DiagnosticSource が通知の送信を完了する前に、リスナーが通知の受信を停止できるインターフェイスへの参照。

注釈

が でないnull場合isEnabledは、一部のイベントが効率良くスキップできることを示します。

特定のインストルメンテーション サイトには、イベントの名前を渡す 1 つ以上 IsEnabled のオーバーロードを呼び出し、最大 2 つの他の (インストルメンテーション サイト固有の) オブジェクトを引数として呼び出すオプションがあります。 これらの IsEnabled 呼び出しのいずれかが行われた場合、この isEnabled 述語は渡された値で呼び出されます (短いオーバーロードが使用されている場合は、 null 不足しているコンテキスト オブジェクトに渡されます)。

これにより、特定のインストルメンテーション サイトで最大 2 つの情報をサブスクライバーに渡して、高度で効率的なフィルター処理を実行できます。 これには、インストルメンテーション サイトとサブスクライバー コード間の結合が増える必要があります。

特定のインストルメンテーション サイトでは、同じイベントに対して の異なるオーバーロード IsEnabled を呼び出し、最初に を呼び出して IsEnabled(String)、2 つの 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 が通知の送信を完了する前に、リスナーが通知の受信を停止できるインターフェイスへの参照。

注釈

が でないnull場合isEnabled、一部のイベントは興味を持たず、効率を高めてスキップできます。 述語は isEnabled 省略可能な最適化であり、インストルメンテーション サイトがペイロードを設定し、サブスクライバーが気にしない場合に を呼び出 Write(String, Object) さないようにします。 特に、インストルメンテーション サイトには、述語を無視して IsEnabled() (呼び出さない) 単に を呼び出す Write(String, Object)オプションがあります。 したがって、サブスクライバーがフィルター処理を必要とする場合は、それ自体を行う必要があります。

が の場合isEnabled、フィルター処理は行われません (戻り値trueのすべてのオーバーロードIsEnabled)。null

適用対象

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

ソース:
DiagnosticSourceActivity.cs
ソース:
DiagnosticSourceActivity.cs
ソース:
DiagnosticSourceActivity.cs

サブスクライバーを追加し、任意で、その名前と最大 2 つのコンテキスト オブジェクトに基づいてイベントをフィルタリングし、プロバイダーがプロセスの外からアクティビティをインポートまたはエクスポートするときに呼び出すメソッドを指定します。

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>

その名前と最大 2 つのコンテキスト オブジェクト (null が可能) に基づいてイベントをフィルタリングするデリゲートです。あるいは、イベント フィルターが望ましくない場合、null

onActivityImport
Action<Activity,Object>

外部イベントの影響を受けるアクティビティを受け取るアクション デリゲートおよび受信要求を表すオブジェクトです。

onActivityExport
Action<Activity,Object>

外部イベントの影響を受けるアクティビティを受け取るアクション デリゲートおよび送信要求を表すオブジェクトです。

戻り値

DiagnosticSource が通知の送信を完了する前に、リスナーが通知の受信を停止できるインターフェイスへの参照。

注釈

が null 以外の場合 isEnabled 、効率を高める目的で一部のイベントをスキップできます。

また、プロバイダーがプロセスの外部 (HTTP 要求など) からアクティビティをインポートまたはエクスポートするときに呼び出される 'onActivityImport' メソッドと 'onActivityExport' メソッドを指定することもできます。 これらのメソッドは、アクティビティのインポートまたはエクスポート後に呼び出され、アクティビティまたは送信要求を変更してポリシーを追加するために使用できます。

適用対象