DiagnosticSource.OnActivityImport(Activity, Object) Metoda

Definicja

Przenosi stan do działania z jakiegoś zdarzenia lub operacji, na przykład żądania przychodzącego, które wystąpiło poza procesem.

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)

Parametry

activity
Activity

Działanie, na które ma wpływ zdarzenie zewnętrzne.

payload
Object

Ładunek reprezentujący żądanie przychodzące.

Uwagi

Jeśli lokacja instrumentacji tworzy nowe działanie w odpowiedzi na jakieś zdarzenie poza procesem, takie jak przychodzące żądanie HTTP, OnActivityImport metoda umożliwia tej lokacji utworzenie nowego działania i przeniesienie stanu z przychodzącego żądania do działania.

W miarę możliwości należy to zrobić przez lokację instrumentacji, ponieważ istnieje kontrakt między elementem Activity a logiką żądania przychodzącego w lokacji instrumentacji. Jednak witryna instrumentacji nie może obsłużyć zasad. (Na przykład jeśli próbkowanie zostało wykonane, dokładnie które żądania powinny być próbkowane?) W takich przypadkach lokacja instrumentacji musi zwrócić się do systemu rejestrowania i poprosić o rozwiązanie zasad (na przykład w celu określenia, czy należy ustawić bit próbkowania działania). Jest to cel OnActivityImport metody . Otrzymuje ono działanie, a także obiekt ładunku, który reprezentuje żądanie przychodzące. Subskrybenci tego DiagnosticSource działania mają możliwość zaktualizowania tego działania zgodnie z potrzebami.

Ta metoda jest rzadko używana w lokacjach instrumentacji (tylko te lokacje, które znajdują się na granicy procesu), a lokacja intruzacji implementuje pewne domyślne zasady (ustawia działanie w jakiś sposób) i dlatego nie jest konieczne zastąpienie tej metody, jeśli te domyślne zasady są poprawne. Innymi słowy, ta metoda powinna być zastępowana w bardzo rzadkich (ale często ważnych) przypadkach.

Należy pamiętać, że payload jest on wpisany w Object tym miejscu, ale każda konkretna lokacja instrumentacji i subskrybent będą wiedzieć o typie ładunku, a tym samym rzutować i dekodować go w razie potrzeby.

Dotyczy