DiagnosticSource.OnActivityImport(Activity, Object) Metodo

Definizione

Trasferisce lo stato a un'attività da un evento o operazione, come una richiesta HTTP, che si è verificata esternamente al processo.

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)

Parametri

activity
Activity

Attività interessata da un evento esterno.

payload
Object

Payload che rappresenta la richiesta in entrata.

Commenti

Se un sito di strumentazione crea una nuova attività in risposta a un evento esterno al processo, ad esempio una richiesta HTTP in ingresso, il OnActivityImport metodo consente al sito di creare una nuova attività e trasferire lo stato dalla richiesta in ingresso all'attività.

Per quanto possibile, questa operazione deve essere eseguita dal sito di strumentazione, perché esiste un contratto tra l'oggetto Activity e la logica di richiesta in ingresso nel sito di strumentazione. Tuttavia, il sito di strumentazione non può gestire i criteri. Ad esempio, se viene eseguito il campionamento, esattamente quali richieste devono essere campionate?) In questi casi, il sito di strumentazione deve richiamare il sistema di registrazione e chiedergli di risolvere i criteri, ad esempio per decidere se deve essere impostato il bit di "campionamento" dell'attività. Questo è lo scopo del OnActivityImport metodo. Viene specificata l'attività e un oggetto payload che rappresenta la richiesta in ingresso. I sottoscrittori dell'oggetto DiagnosticSource hanno quindi la possibilità di aggiornare questa attività in base alle esigenze.

Questo metodo viene usato raramente nei siti di strumentazione (solo i siti che si trovano al limite del processo) e il sito di instrumetation implementa alcuni criteri predefiniti (imposta l'attività in qualche modo) e quindi non è necessario eseguire l'override di questo metodo se tale criterio predefinito è corretto. In altre parole, questo metodo deve essere sottoposto a override in casi molto rari (ma spesso importanti).

Si noti che payload è digitato come Object qui, ma qualsiasi particolare sito di strumentazione e sottoscrittore conoscerà il tipo del payload e quindi eseguirne il cast e decodificarlo se necessario.

Si applica a