Aracılığıyla paylaş


CorrelationManager Sınıf

Tanım

Mantıksal bir işlemin parçası olan izlemeleri bağıntılar.

public ref class CorrelationManager
public class CorrelationManager
type CorrelationManager = class
Public Class CorrelationManager
Devralma
CorrelationManager

Örnekler

Aşağıdaki kod örneği, izlenen bir olayla ilişkili mantıksal işlemi tanımlayarak sınıfının kullanımını CorrelationManager gösterir. Biri ana iş parçacığında, diğeri bir çalışan iş parçacığında olmak üzere iki mantıksal işlem başlatılır. Her iki mantıksal işlemde de bir hata olayı günlüğe kaydedilir.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Threading;

namespace CorrlationManager
{
    class Program
    {
        //private static TraceSource ts;
        static void Main(string[] args)
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Start the logical operation on the Main thread.
            Trace.CorrelationManager.StartLogicalOperation("MainThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Thread t = new Thread(new ThreadStart(ThreadProc));
            // Start the worker thread.
            t.Start();
            // Give the worker thread a chance to execute.
            Thread.Sleep(1000);
            Trace.CorrelationManager.StopLogicalOperation();
        }
        public static void ThreadProc()
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Add another logical operation.
            Trace.CorrelationManager.StartLogicalOperation("WorkerThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Trace.CorrelationManager.StopLogicalOperation();
        }
    }
}
// This sample generates the following output:
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=MainThread
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=WorkerThread, MainThread
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics
Imports System.Threading



Class Program
    
    'private static TraceSource ts;
    Shared Sub Main(ByVal args() As String) 
        Dim ts As New TraceSource("MyApp")
        Dim i As Integer = ts.Listeners.Add(New ConsoleTraceListener())
        ts.Listeners(i).TraceOutputOptions = TraceOptions.LogicalOperationStack
        ts.Switch = New SourceSwitch("MyAPP", "Verbose")
        ' Start the logical operation on the Main thread.
        Trace.CorrelationManager.StartLogicalOperation("MainThread")
        ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.")
        Dim t As New Thread(New ThreadStart(AddressOf ThreadProc))
        ' Start the worker thread.
        t.Start()
        ' Give the worker thread a chance to execute.
        Thread.Sleep(1000)
        Trace.CorrelationManager.StopLogicalOperation()
    
    End Sub
    
    Public Shared Sub ThreadProc() 
        Dim ts As New TraceSource("MyApp")
        Dim i As Integer = ts.Listeners.Add(New ConsoleTraceListener())
        ts.Listeners(i).TraceOutputOptions = TraceOptions.LogicalOperationStack
        ts.Switch = New SourceSwitch("MyAPP", "Verbose")
        ' Add another logical operation.
        Trace.CorrelationManager.StartLogicalOperation("WorkerThread")
        ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.")
        Trace.CorrelationManager.StopLogicalOperation()
    
    End Sub
End Class
' This sample generates the following output:
'MyApp Error: 1 : Trace an error event.
'    LogicalOperationStack=MainThread
'MyApp Error: 1 : Trace an error event.
'    LogicalOperationStack=WorkerThread, MainThread

Açıklamalar

Tek bir mantıksal işlemden oluşturulan izlemeler, izlemelerden farklı bir mantıksal işlemden ayırt etmek için işlem benzersiz kimliğiyle etiketlenebilir. Örneğin, bağıntılı izlemeleri ASP.NET isteğine göre gruplandırmak yararlı olabilir. sınıfı, CorrelationManager mantıksal işlem kimliğini iş parçacığına bağlı bir bağlamda depolamak ve iş parçacığı tarafından oluşturulan her izleme olayını depolanan kimlikle otomatik olarak etiketlemek için kullanılan yöntemleri sağlar.

Mantıksal işlemler de iç içe yerleştirilmiş olabilir. özelliği, LogicalOperationStack iç içe mantıksal işlem kimliklerinin yığınını kullanıma sunar. yöntemine yapılan StartLogicalOperation her çağrı, yığına yeni bir mantıksal işlem kimliği iletir. Yöntemine yapılan StopLogicalOperation her çağrı, yığından bir mantıksal işlem kimliği açar.

Uyarı

Mantıksal işlem kimlikleri, mantıksal işlem kimliği için bir türün kullanılmasına izin veren nesnelerdir.

Özellikler

Name Description
ActivityId

Genel bir etkinliğin kimliğini alır veya ayarlar.

LogicalOperationStack

Çağrı bağlamından mantıksal işlem yığınını alır.

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
StartLogicalOperation()

İş parçacığında mantıksal bir işlem başlatır.

StartLogicalOperation(Object)

bir iş parçacığında belirtilen kimlikle mantıksal bir işlem başlatır.

StopLogicalOperation()

Geçerli mantıksal işlemi durdurur.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır