Teilen über


DiagnosticListener.Subscribe Methode

Definition

Diese Methoden ermöglichen das Hinzufügen eines Abonnenten, und einige von Ihnen stellen optionale Ereignisfiltermethoden bereit.

Überlädt

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

Fügt einen Abonnenten hinzu.

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

Fügt einen Abonnenten hinzu und filtert optional Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten.

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

Fügt einen Abonnenten hinzu und filtert optional Ereignisse auf der Grundlage ihres Namens.

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

Fügt einen Abonnenten hinzu, filtert optional Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten, und gibt Methoden an, die aufgerufen werden sollen, wenn Anbieter Aktivitäten von außerhalb des Prozesses importieren oder exportieren.

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

Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs

Fügt einen Abonnenten hinzu.

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

Parameter

observer
IObserver<KeyValuePair<String,Object>>

Ein Abonnent.

Gibt zurück

Ein Verweis auf eine Schnittstelle, mit der der Listener den Empfang von Benachrichtigungen beenden kann, bevor die DiagnosticSource das Absenden der Benachrichtigungen abgeschlossen hat.

Implementiert

Gilt für:

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

Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs

Fügt einen Abonnenten hinzu und filtert optional Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten.

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

Parameter

observer
IObserver<KeyValuePair<String,Object>>

Ein Abonnent.

isEnabled
Func<String,Object,Object,Boolean>

Ein Delegat, der Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten filtert (die null sein können), oder null, wenn ein Ereignisfilter nicht erwünscht ist.

Gibt zurück

Ein Verweis auf eine Schnittstelle, mit der der Listener den Empfang von Benachrichtigungen beenden kann, bevor die DiagnosticSource das Absenden der Benachrichtigungen abgeschlossen hat.

Hinweise

Andernfalls isEnablednullweist dies darauf hin, dass einige Ereignisse aus Effizienzgründen übersprungen werden können.

Eine bestimmte Instrumentierungswebsite hat die Möglichkeit, eine oder IsEnabled mehrere Überladungen aufzurufen, in denen sie den Namen des Ereignisses und bis zu zwei weitere (standortspezifische) Objekte als Argumente übergibt. Wenn einer dieser IsEnabled Aufrufe erfolgt, wird dieses isEnabled Prädikat mit übergebenen Werten aufgerufen (wenn kürzere Überladungen verwendet werden, null wird für fehlende Kontextobjekte übergeben).

Dies gibt jeder bestimmten Instrumentierungswebsite die Möglichkeit, bis zu zwei Informationen an den Abonnenten zu übergeben, um eine anspruchsvolle, effiziente Filterung durchzuführen. Dies erfordert eine stärkere Kopplung zwischen der Instrumentierungswebsite und dem Abonnentencode.

Es wird erwartet, dass eine bestimmte Instrumentierungswebsite verschiedene Überladungen von IsEnabled für dasselbe Ereignis aufruft, wobei zuerst aufgerufen IsEnabled(String)wird, wodurch der Filter mit zwei null Kontextobjekten aufgerufen wird. Wenn isEnabled zurückgegeben truewird, wird mit Kontextobjekten erneut aufgerufen. Der isEnabled Filter sollte in diesem Sinne entworfen werden.

Beachten Sie, dass das isEnabled Prädikat eine optionale Optimierung ist, damit die Instrumentierungswebsite nicht die Nutzlast einrichten und aufrufen Write(String, Object) kann, wenn sich kein Abonnent darum kümmert. Insbesondere hat die Instrumentierungswebsite die Möglichkeit, das IsEnabled Prädikat zu ignorieren (nicht aufzurufen) und einfach aufzurufen Write(String, Object). Wenn der Abonnent also die Filterung benötigt, muss er dies selbst tun.

Wenn dieser Parameter ist null, wird keine Filterung durchgeführt (alle Überladungen der IsEnabled Rückgabe true).

Gilt für:

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

Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs
Quelle:
DiagnosticListener.cs

Fügt einen Abonnenten hinzu und filtert optional Ereignisse auf der Grundlage ihres Namens.

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

Parameter

observer
IObserver<KeyValuePair<String,Object>>

Ein Abonnent.

isEnabled
Predicate<String>

Ein Delegat, der Ereignisse auf der Grundlage ihres Namens filtert (String). Der Delegat sollte true zurückgeben, wenn das Ereignis aktiviert ist.

Gibt zurück

Ein Verweis auf eine Schnittstelle, mit der der Listener den Empfang von Benachrichtigungen beenden kann, bevor die DiagnosticSource das Absenden der Benachrichtigungen abgeschlossen hat.

Hinweise

Andernfalls isEnablednullsind einige Ereignisse uninteressant und können aus Gründen der Effizienz übersprungen werden. Das isEnabled Prädikat ist eine optionale Optimierung, damit die Instrumentierungswebsite nicht die Nutzlast einrichten und aufrufen Write(String, Object) kann, wenn sich kein Abonnent darum kümmert. Insbesondere die Instrumentierungswebsite hat die Möglichkeit, das IsEnabled() Prädikat zu ignorieren (nicht aufgerufen) und einfach aufzurufen Write(String, Object). Wenn der Abonnent also die Filterung benötigt, muss er dies selbst tun.

Wenn isEnabled ist null, wird keine Filterung durchgeführt (alle Überladungen der IsEnabled Rückgabe true).

Gilt für:

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

Quelle:
DiagnosticSourceActivity.cs
Quelle:
DiagnosticSourceActivity.cs
Quelle:
DiagnosticSourceActivity.cs

Fügt einen Abonnenten hinzu, filtert optional Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten, und gibt Methoden an, die aufgerufen werden sollen, wenn Anbieter Aktivitäten von außerhalb des Prozesses importieren oder exportieren.

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

Parameter

observer
IObserver<KeyValuePair<String,Object>>

Ein Abonnent.

isEnabled
Func<String,Object,Object,Boolean>

Ein Delegat, der Ereignisse auf der Grundlage ihres Namens und von bis zu zwei Kontextobjekten filtert (die null sein können), oder null, wenn ein Ereignisfilter nicht erwünscht ist

onActivityImport
Action<Activity,Object>

Ein Action-Delegat, der die betroffene Aktivität von einem externen Ereignis sowie von einem Objekt, das die eingehende Anforderung darstellt, empfängt.

onActivityExport
Action<Activity,Object>

Ein Action-Delegat, der die betroffene Aktivität von einem externen Ereignis sowie von einem Objekt, das die ausgehende Anforderung darstellt, empfängt.

Gibt zurück

Ein Verweis auf eine Schnittstelle, mit der der Listener den Empfang von Benachrichtigungen beenden kann, bevor die DiagnosticSource das Absenden der Benachrichtigungen abgeschlossen hat.

Hinweise

Wenn isEnabled nicht NULL ist, können einige Ereignisse uninteressant sind, aus Gründen der Effizienz übersprungen werden.

Sie können auch methoden "onActivityImport" und "onActivityExport" bereitstellen, die aufgerufen werden, wenn Anbieter Aktivitäten von außerhalb des Prozesses importieren oder exportieren (z. B. von HTTP-Anforderungen). Diese Methoden werden nach dem Importieren oder Exportieren der Aktivität aufgerufen und können verwendet werden, um die Aktivität oder die ausgehende Anforderung zum Hinzufügen einer Richtlinie zu ändern.

Gilt für: