TraceProcessor'ı genişletme

Birçok izleme verisi türü, TraceProcessortarafından yerleşik olarak desteklenir, ancak analiz etmek istediğiniz başka sağlayıcılarınız varsa (kendi özel sağlayıcılarınız dahil), bu verilere de işleme devam ederken iz dizisinden canlı olarak erişebilirsiniz.

Uyarı

API'nin bu bölümü önizleme aşamasında ve etkin geliştirme aşamasındadır. Gelecek sürümlerde değişebilir.

Örneğin, bir izlemedeki sağlayıcı kimliklerinin listesini almak için basit bir yol aşağıda verilmiştir.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    HashSet<Guid> providerIds = new HashSet<Guid>();
    trace.Use((e) => providerIds.Add(e.ProviderId));
    trace.Process();

    foreach (Guid providerId in providerIds)
    {
        Console.WriteLine(providerId);
    }
}

Aşağıdaki örnekte basitleştirilmiş bir özel veri kaynağı gösterilmektedir.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    CustomDataSource customDataSource = new CustomDataSource();
    trace.Use(customDataSource);

    trace.Process();

    Console.WriteLine(customDataSource.Count);
}

class CustomDataSource : IFilteredEventConsumer
{
    public IReadOnlyList<Guid> ProviderIds { get; } = new Guid[] { new Guid("your provider ID") };

    public int Count { get; private set; }

    public void Process(EventContext eventContext)
    {
        ++Count;
    }
}

Sonraki Adımlar

Bu öğreticide TraceProcessor'ı genişletmeyi öğrendiniz.

Sonraki adım, izlemeler için sembolleri yüklemeyi öğrenmektir.