2012-04-23 2 views
0

J'essaie le hands on labs pour MS Enterprise Library - bloc d'application de journalisation.Get ElapsedTime From Trace

En ajoutant une trace, je reçois un 'message' sur mon 'fichier plat' écoute en disant: "Message: Fin Trace: Activité '6455494c-0602-45c9-8a10-052cdd39e5cb' dans la méthode « EnoughPI.Calc .Calculator.Calculate » à 767616631287998 tiques (temps écoulé: 10.292 secondes)"

Puis-je obtenir aussi le temps écoulé « seul », ou dire tics écoulé, de la trace.

Merci,

Répondre

1

L'API n'expose pas les informations de synchronisation sur une interface publique. Vous pouvez utiliser la réflexion pour obtenir les informations, mais vous le faites à vos risques et périls (car il est dépendant de la mise en œuvre interne qui pourrait changer):

using (Tracer tracer = new Tracer("General")) 
{ 
    FieldInfo fieldInfo = typeof(Tracer).GetField("stopwatch", BindingFlags.NonPublic | BindingFlags.Instance); 
    var sw = fieldInfo.GetValue(tracer) as Stopwatch; 
    Console.WriteLine(sw.ElapsedMilliseconds); 
} 

Une autre alternative serait d'écrire votre propre implémentation de Tracer (sur la base Code de bibliothèque d'entreprise) qui expose les propriétés qui vous intéressent.