private string GetValue(System.Diagnostics.Activity activity) { switch (Property) { case ActivityTraceProperty.Id: return(activity.Id); case ActivityTraceProperty.SpanId: return(activity.GetSpanId()); case ActivityTraceProperty.TraceId: return(activity.GetTraceId()); case ActivityTraceProperty.OperationName: return(activity.OperationName); case ActivityTraceProperty.StartTimeUtc: return(activity.StartTimeUtc > DateTime.MinValue ? activity.StartTimeUtc.ToString(Format, Culture) : string.Empty); case ActivityTraceProperty.Duration: return(GetDuration(activity)); case ActivityTraceProperty.ParentId: return(activity.GetParentId()); case ActivityTraceProperty.TraceState: return(activity.TraceStateString); case ActivityTraceProperty.TraceFlags: return(activity.ActivityTraceFlags == System.Diagnostics.ActivityTraceFlags.None && string.IsNullOrEmpty(Format) ? string.Empty : activity.ActivityTraceFlags.ToString(Format)); case ActivityTraceProperty.Baggage: return(GetCollectionItem(Item, activity.Baggage)); case ActivityTraceProperty.Tags: return(GetCollectionItem(Item, activity.TagObjects)); case ActivityTraceProperty.CustomProperty: return(string.IsNullOrEmpty(Item) ? string.Empty : (activity.GetCustomProperty(Item)?.ToString() ?? activity.Parent?.GetCustomProperty(Item)?.ToString() ?? string.Empty)); case ActivityTraceProperty.SourceName: return(activity.Source?.Name); case ActivityTraceProperty.SourceVersion: return(activity.Source?.Version); case ActivityTraceProperty.ActivityKind: return(ConvertToString(activity.Kind)); default: return(string.Empty); } }