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 ,但任何特定的检测站点和订阅服务器都将知道有效负载的类型,因此在必要时对其进行强制转换和解码。

适用于