Condividi tramite


DiagnosticListener.Subscribe Metodo

Definizione

Questi metodi consentono di aggiungere un sottoscrittore e alcuni di essi offrono metodi di filtro degli eventi facoltativi.

Overload

Subscribe(IObserver<KeyValuePair<String,Object>>)

Aggiunge un sottoscrittore.

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

Aggiunge un sottoscrittore e facoltativamente filtra gli eventi in base al nome e a un massimo di due contesti di ambiente.

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

Aggiunge un sottoscrittore e facoltativamente filtra gli eventi in base al nome.

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

Aggiunge un sottoscrittore, facoltativamente filtra gli eventi in base al nome e a un massimo di due contesti di ambiente e specifica i metodi da chiamare quando i provider importano o esportano attività dall'esterno del processo.

Subscribe(IObserver<KeyValuePair<String,Object>>)

Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs

Aggiunge un sottoscrittore.

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

Parametri

observer
IObserver<KeyValuePair<String,Object>>

Sottoscrittore.

Restituisce

Riferimento a un'interfaccia che consente ai listener di non ricevere più notifiche prima che DiagnosticSource ne abbia completato l'invio.

Implementazioni

Si applica a

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs

Aggiunge un sottoscrittore e facoltativamente filtra gli eventi in base al nome e a un massimo di due contesti di ambiente.

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

Parametri

observer
IObserver<KeyValuePair<String,Object>>

Sottoscrittore.

isEnabled
Func<String,Object,Object,Boolean>

Delegato che filtra gli eventi in base al nome e a un massimo di due contesti di ambiente (che possono essere null) oppure null se un filtro eventi non è ottimale.

Restituisce

Riferimento a un'interfaccia che consente ai listener di non ricevere più notifiche prima che DiagnosticSource ne abbia completato l'invio.

Commenti

Se isEnabled non nullè , indica che alcuni eventi non sono interessati può essere ignorato per l'efficienza.

Un particolare sito di strumentazione ha la possibilità di chiamare uno o più IsEnabled overload in cui passa il nome dell'evento e fino a due altri oggetti (specifici del sito di strumentazione) come argomenti. Se viene eseguita una di queste IsEnabled chiamate, questo isEnabled predicato viene richiamato con valori passati (se vengono usati overload più brevi, null viene passato per gli oggetti di contesto mancanti).

Ciò consente a qualsiasi sito di strumentazione particolare di passare fino a due informazioni al sottoscrittore per eseguire filtri sofisticati ed efficienti. Ciò richiede un maggiore accoppiamento tra il sito di strumentazione e il codice del sottoscrittore.

È previsto che un sito di strumentazione specifico possa chiamare overload diversi di IsEnabled per lo stesso evento, chiamando prima , che chiama IsEnabled(String)il filtro con due null oggetti di contesto. Se isEnabled restituisce true, chiama di nuovo con oggetti di contesto. Il isEnabled filtro deve essere progettato tenendo presente questo aspetto.

Si noti che il isEnabled predicato è un'ottimizzazione facoltativa per consentire al sito di strumentazione di evitare di configurare il payload e chiamare Write(String, Object) quando nessun sottoscrittore si preoccupa. In particolare, il sito di strumentazione ha la possibilità di ignorare il IsEnabled predicato (non chiamarlo) e semplicemente chiamando Write(String, Object). Pertanto, se il sottoscrittore richiede il filtro, deve eseguire questa operazione.

Se questo parametro è null, non viene eseguito alcun filtro (tutti gli overload di IsEnabled restituiscono true).

Si applica a

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs
Origine:
DiagnosticListener.cs

Aggiunge un sottoscrittore e facoltativamente filtra gli eventi in base al nome.

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

Parametri

observer
IObserver<KeyValuePair<String,Object>>

Sottoscrittore.

isEnabled
Predicate<String>

Un delegato che filtra gli eventi in base al nome (String). Il delegato deve restituire true se l'evento è abilitato.

Restituisce

Riferimento a un'interfaccia che consente ai listener di non ricevere più notifiche prima che DiagnosticSource ne abbia completato l'invio.

Commenti

Se isEnabled non nullè , alcuni eventi non sono interessati e possono essere ignorati per l'efficienza. Il isEnabled predicato è un'ottimizzazione facoltativa per consentire al sito di strumentazione di evitare di configurare il payload e chiamare Write(String, Object) quando nessun sottoscrittore si preoccupa. In particolare, il sito di strumentazione ha la possibilità di ignorare il IsEnabled() predicato (non chiamarlo) e semplicemente chiamando Write(String, Object). Pertanto, se il sottoscrittore richiede il filtro, deve eseguire questa operazione.

Se isEnabled è null, non viene eseguito alcun filtro (tutti gli overload di IsEnabled restituiscono true).

Si applica a

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

Origine:
DiagnosticSourceActivity.cs
Origine:
DiagnosticSourceActivity.cs
Origine:
DiagnosticSourceActivity.cs

Aggiunge un sottoscrittore, facoltativamente filtra gli eventi in base al nome e a un massimo di due contesti di ambiente e specifica i metodi da chiamare quando i provider importano o esportano attività dall'esterno del processo.

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

Parametri

observer
IObserver<KeyValuePair<String,Object>>

Sottoscrittore.

isEnabled
Func<String,Object,Object,Boolean>

Delegato che filtra gli eventi in base al nome e a un massimo di due contesti di ambiente (che possono essere null) oppure null se un filtro eventi non è ottimale.

onActivityImport
Action<Activity,Object>

Delegato dell'azione che riceve l'attività interessata da un evento esterno e da un oggetto che rappresenta la richiesta in ingresso.

onActivityExport
Action<Activity,Object>

Delegato dell'azione che riceve l'attività interessata da un evento esterno e da un oggetto che rappresenta la richiesta in uscita.

Restituisce

Riferimento a un'interfaccia che consente ai listener di non ricevere più notifiche prima che DiagnosticSource ne abbia completato l'invio.

Commenti

Se isEnabled è diverso da Null, è possibile ignorare alcuni eventi per l'efficienza.

È anche possibile specificare i metodi "onActivityImport" e "onActivityExport" chiamati quando i provider importano o esportano attività dall'esterno del processo, ad esempio dalle richieste HTTP. Questi metodi vengono chiamati dopo l'importazione o l'esportazione dell'attività e possono essere usati per modificare l'attività o la richiesta in uscita per aggiungere criteri.

Si applica a