DiagnosticListener.Subscribe Metoda

Definicja

Te metody umożliwiają dodawanie subskrybenta, a niektóre z nich zapewniają opcjonalne metody filtrowania zdarzeń.

Przeciążenia

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

Dodaje subskrybenta.

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

Dodaje subskrybenta i opcjonalnie filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu.

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

Dodaje subskrybenta i opcjonalnie filtruje zdarzenia na podstawie ich nazwy.

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

Dodaje subskrybenta, opcjonalnie filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu i określa metody wywoływania, gdy dostawcy importują lub eksportują aktywacje spoza procesu.

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

Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs

Dodaje subskrybenta.

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

Parametry

observer
IObserver<KeyValuePair<String,Object>>

Subskrybent.

Zwraca

Odwołanie do interfejsu, który umożliwia odbiornikowi zaprzestanie odbierania powiadomień przed zakończeniem ich wysyłania DiagnosticSource .

Implementuje

Dotyczy

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

Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs

Dodaje subskrybenta i opcjonalnie filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu.

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

Parametry

observer
IObserver<KeyValuePair<String,Object>>

Subskrybent.

isEnabled
Func<String,Object,Object,Boolean>

Delegat, który filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu (które mogą być null), lub null , jeśli filtr zdarzeń nie jest pożądany.

Zwraca

Odwołanie do interfejsu, który umożliwia odbiornikowi zaprzestanie odbierania powiadomień przed zakończeniem ich wysyłania DiagnosticSource .

Uwagi

Jeśli isEnabled nie nulljest , oznacza to, że niektóre zdarzenia są nieinteresujące, można pominąć pod kątem wydajności.

Określona lokacja instrumentacji ma możliwość wywołania co najmniej jednego IsEnabled przeciążenia, w którym przekazuje nazwę zdarzenia i maksymalnie dwa inne (specyficzne dla lokacji instrumentacji) obiekty jako argumenty. Jeśli którekolwiek z tych IsEnabled wywołań jest wykonywane, ten isEnabled predykat jest wywoływany z przekazanymi wartościami (jeśli są używane krótsze przeciążenia, null jest przekazywany dla brakujących obiektów kontekstu).

Dzięki temu każda konkretna lokacja instrumentacji umożliwia przekazywanie do subskrybenta maksymalnie dwóch informacji w celu przeprowadzenia zaawansowanego, wydajnego filtrowania. Wymaga to większego sprzężenia między lokacją instrumentacji a kodem subskrybenta.

Oczekuje się, że określona lokacja instrumentacji może wywoływać różne przeciążenia IsEnabled dla tego samego zdarzenia, najpierw wywołując metodę IsEnabled(String), która wywołuje filtr z dwoma null obiektami kontekstu. Jeśli isEnabled zwraca truewartość , wywołuje ponownie obiekty kontekstowe. Filtr isEnabled powinien być zaprojektowany z myślą o tym.

Należy pamiętać, że isEnabled predykat jest opcjonalną optymalizacją umożliwiającą witrynie instrumentacji unikanie konfigurowania ładunku i wywoływania Write(String, Object) , gdy żaden subskrybent nie dba o to. W szczególności lokacja instrumentacji ma możliwość ignorowania IsEnabled predykatu (nie nazywając go) i po prostu wywołania Write(String, Object)metody . W związku z tym, jeśli subskrybent wymaga filtrowania, musi zrobić to samo.

Jeśli ten parametr to null, nie jest wykonywane filtrowanie (wszystkie przeciążenia zwracanetrueIsEnabled).

Dotyczy

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

Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs
Źródło:
DiagnosticListener.cs

Dodaje subskrybenta i opcjonalnie filtruje zdarzenia na podstawie ich nazwy.

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

Parametry

observer
IObserver<KeyValuePair<String,Object>>

Subskrybent.

isEnabled
Predicate<String>

Delegat, który filtruje zdarzenia na podstawie ich nazwy (String). Delegat powinien zwrócić, true jeśli zdarzenie jest włączone.

Zwraca

Odwołanie do interfejsu, który umożliwia odbiornikowi zaprzestanie odbierania powiadomień przed zakończeniem ich wysyłania DiagnosticSource .

Uwagi

Jeśli isEnabled nie nulljest , niektóre zdarzenia są nieinteresujące i można pominąć w celu zwiększenia wydajności. Predykat isEnabled jest opcjonalną optymalizacją umożliwiającą witrynie instrumentacji uniknięcie konfigurowania ładunku i wywoływania Write(String, Object) , gdy żaden subskrybent nie dba o to. W szczególności lokacja instrumentacji ma możliwość ignorowania IsEnabled() predykatu (nie wywołując go) i po prostu wywołania Write(String, Object)metody . W związku z tym, jeśli subskrybent wymaga filtrowania, musi zrobić to samo.

Jeśli isEnabled jest to null, nie jest wykonywane filtrowanie (wszystkie przeciążenia zwracane IsEnabledtrue).

Dotyczy

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

Źródło:
DiagnosticSourceActivity.cs
Źródło:
DiagnosticSourceActivity.cs
Źródło:
DiagnosticSourceActivity.cs

Dodaje subskrybenta, opcjonalnie filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu i określa metody wywoływania, gdy dostawcy importują lub eksportują aktywacje spoza procesu.

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

Parametry

observer
IObserver<KeyValuePair<String,Object>>

Subskrybent.

isEnabled
Func<String,Object,Object,Boolean>

Delegat, który filtruje zdarzenia na podstawie ich nazwy i maksymalnie dwóch obiektów kontekstu (które mogą być null), lub null jeśli filtr zdarzeń nie jest pożądany.

onActivityImport
Action<Activity,Object>

Delegat akcji, który odbiera działanie, na które ma wpływ zdarzenie zewnętrzne i obiekt reprezentujący żądanie przychodzące.

onActivityExport
Action<Activity,Object>

Delegat akcji, który odbiera działanie, na które ma wpływ zdarzenie zewnętrzne i obiekt reprezentujący żądanie wychodzące.

Zwraca

Odwołanie do interfejsu, który umożliwia odbiornikowi zaprzestanie odbierania powiadomień przed zakończeniem ich wysyłania DiagnosticSource .

Uwagi

Jeśli isEnabled nie ma wartości null, niektóre zdarzenia są nieinteresujące można pominąć w celu zwiększenia wydajności.

Można również podać metody "onActivityImport" i "onActivityExport", które są wywoływane podczas importowania lub eksportowania działań przez dostawców spoza procesu (na przykład z żądań HTTP). Te metody są wywoływane po zaimportowaniu lub wyeksportowaniu działania i mogą służyć do modyfikowania działania lub żądania wychodzącego w celu dodania zasad.

Dotyczy