Поделиться через


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 объектами контекста. Если isEnabled возвращает trueзначение , он снова вызывает с контекстными объектами. Фильтр isEnabled должен быть разработан с учетом этого.

Обратите внимание, что isEnabled предикат является необязательной оптимизацией, позволяющей сайту инструментирования избежать настройки полезных данных и вызова, Write(String, Object) когда ни подписчик не заботится об этом. В частности, сайт инструментирования может игнорировать предикат (не вызывая IsEnabled его) и просто вызывать Write(String, Object). Таким образом, если подписчику требуется фильтрация, он должен сделать это сам.

Если этот параметр имеет значение null, фильтрация не выполняется (все перегрузки IsEnabled возвращают true).

Применяется к

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). Таким образом, если подписчику требуется фильтрация, он должен сделать это самостоятельно.

Если isEnabled имеет значение null, фильтрация не выполняется (все перегрузки IsEnabled возвращают true).

Применяется к

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-запросов). Эти методы вызываются после импорта или экспорта действия и могут использоваться для изменения действия или исходящего запроса для добавления политики.

Применяется к