Estendere TraceProcessor
Molti tipi di dati traccia hanno il supporto integrati in TraceProcessor, ma se si dispone di altri provider che si desidera analizzare (inclusi i provider personalizzati), tali dati sono disponibili anche dalla traccia in tempo reale durante l'elaborazione.
Nota
Questa parte dell'API è in anteprima e in fase di sviluppo attivo. Potrebbe cambiare nelle versioni future.
Ecco, ad esempio, un modo semplice per ottenere l'elenco di ID provider in una traccia.
// 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);
}
}
L'esempio seguente mostra un'origine dati personalizzata semplificata.
// 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;
}
}
Passaggi successivi
In questo tutorial si è appreso come estendere TraceProcessor.
Il passaggio successivo consiste nell'apprendere come caricare simboli per le tracce.