DiagnosticSource.OnActivityImport(Activity, Object) Método

Definición

Transfiere el estado a una actividad desde algún evento u operación, como una solicitud entrante, que se produjo fuera del proceso.

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)

Parámetros

activity
Activity

Actividad afectada por un evento externo.

payload
Object

Carga útil que representa la solicitud entrante.

Comentarios

Si un sitio de instrumentación crea una nueva actividad en respuesta a algún evento fuera del proceso, como una solicitud HTTP entrante), el OnActivityImport método permite que ese sitio quiera crear una nueva actividad y transferir el estado de la solicitud entrante a la actividad.

En la medida de lo posible, el sitio de instrumentación debe hacerlo, ya que existe un contrato entre y Activity la lógica de solicitud entrante en el sitio de instrumentación. Sin embargo, el sitio de instrumentación no puede controlar la directiva. (Por ejemplo, si se realiza el muestreo, ¿exactamente qué solicitudes se deben muestrear?) En estos casos, el sitio de instrumentación debe volver a llamar al sistema de registro y pedirle que resuelva la directiva (por ejemplo, para decidir si se debe establecer el bit de "muestreo" de la actividad). Este es el propósito del OnActivityImport método . Se proporciona la actividad, así como un objeto de carga que representa la solicitud entrante. Los suscriptores de a DiagnosticSource continuación tienen la oportunidad de actualizar esta actividad según sea necesario.

Este método rara vez se usa en sitios de instrumentación (solo los sitios que están en el límite del proceso) y el sitio de instrución implementa alguna directiva predeterminada (establece la actividad de alguna manera) y, por lo tanto, no es necesario invalidar este método si esa directiva predeterminada está bien. En otras palabras, este método debe invalidarse en casos muy poco frecuentes (pero a menudo importantes).

Tenga en cuenta que payload se escribe como Object aquí, pero cualquier sitio de instrumentación y suscriptor determinado conocerá el tipo de la carga y, por tanto, lo convertirá y descodificará si es necesario.

Se aplica a