DiagnosticSource.OnActivityImport(Activity, Object) 方法

定义

将状态从某个事件或操作(例如传入请求)传输到进程外部发生的活动。

public:
 virtual void OnActivityImport(System::Diagnostics::Activity ^ activity, System::Object ^ payload);
public virtual void OnActivityImport(System.Diagnostics.Activity activity, object? payload);
public virtual void OnActivityImport(System.Diagnostics.Activity activity, object payload);
abstract member OnActivityImport : System.Diagnostics.Activity * obj -> unit
override this.OnActivityImport : System.Diagnostics.Activity * obj -> unit
Public Overridable Sub OnActivityImport (activity As Activity, payload As Object)

参数

activity
Activity

受外部事件影响的活动。

payload
Object

表示传入请求的有效负载。

注解

如果检测站点创建一个新活动来响应进程外部的某些事件(例如传入 HTTP 请求),该方法 OnActivityImport 允许该站点希望创建新活动并将状态从传入请求传输到活动。

在可能的情况下,检测站点应执行此操作,因为检测站点上存在传入请求逻辑之间的 Activity 协定。 但是,检测站点无法处理策略。 (例如,如果采样完成,应准确采样哪些请求?)在这些情况下,检测站点需要回调到日志记录系统并要求它解析策略(例如,要确定是否应设置活动的“采样”位)。 这是方法的 OnActivityImport 用途。 它提供活动以及表示传入请求的有效负载对象。 然后,订阅者 DiagnosticSource 有机会根据需要更新此活动。

此方法很少用于检测站点(仅那些位于进程边界的站点),而入侵站点实现一些默认策略(它 以某种 方式设置活动),因此,如果默认策略正常,则无需重写此方法。 换句话说,此方法应在非常罕见(但通常很重要)的情况下重写。

请注意, payload 键入为 Object 此处,但任何特定的检测站点和订阅者都将知道有效负载的类型,因此在必要时进行强制转换和解码。

适用于