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>>
Подписчик.
Делегат, который фильтрует события по имени и максимум двум объектам контекста (которые могут быть 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>>
Подписчик.
Делегат, который фильтрует события на основе их имени (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>>
Подписчик.
Делегат, который фильтрует события по имени и максимум двум объектам контекста (которые могут быть null
), либо значение null
, если фильтр событий не требуется.
Делегат действия, получающий действие, затронутое внешним событием, и объект, представляющий входящий запрос.
Делегат действия, получающий действие, затронутое внешним событием, и объект, представляющий исходящий запрос.
Возвращаемое значение
Ссылка на интерфейс, которая позволяет прослушивателю прекратить получение уведомлений до того, как источник DiagnosticSource закончил отправлять их.
Комментарии
Если isEnabled
имеет значение, отличное от NULL, некоторые события могут быть пропущены для повышения эффективности.
Можно также предоставить методы onActivityImport и onActivityExport, которые вызываются при импорте или экспорте действий поставщиками извне процесса (например, из HTTP-запросов). Эти методы вызываются после импорта или экспорта действия и могут использоваться для изменения действия или исходящего запроса для добавления политики.