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>>)
- Source:
- DiagnosticListener.cs
- Source:
- DiagnosticListener.cs
- Source:
- 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>)
- Source:
- DiagnosticListener.cs
- Source:
- DiagnosticListener.cs
- Source:
- 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
,则不会 (返回 true
) 的所有重载IsEnabled执行筛选。
适用于
Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)
- Source:
- DiagnosticListener.cs
- Source:
- DiagnosticListener.cs
- Source:
- 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>>
订阅者。
返回
对允许侦听器在 DiagnosticSource 发送完通知前停止接收这些通知的接口的引用。
注解
如果 isEnabled
不是 null
,则某些事件没有兴趣,可以跳过以提高效率。 谓 isEnabled
词是一种可选优化,允许检测站点避免设置有效负载并在没有订阅者关心时调用 Write(String, Object) 。 具体而言,检测站点可以选择忽略 IsEnabled() 谓词, (不) 调用谓词,而只是调用 Write(String, Object)。 因此,如果订阅服务器需要筛选,则需要自行执行。
如果 isEnabled
为 null
,则不 (返回 true
) 的所有重载IsEnabled执行筛选。
适用于
Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)
- Source:
- DiagnosticSourceActivity.cs
- Source:
- DiagnosticSourceActivity.cs
- Source:
- 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 请求) 。 这些方法在导入或导出活动后调用,可用于修改活动或传出请求以添加策略。