コード例 #1
0
        internal static void RaiseEvent(IActivityScope activityScope, ActivityEventArgs args)
        {
            EventHandler <ActivityEventArgs> onActivityEvent = ActivityContext.OnActivityEvent;

            if (onActivityEvent != null && activityScope != null)
            {
                Guid activityId = activityScope.ActivityId;
                ExTraceGlobals.ActivityContextTracer.TraceDebug <ActivityEventType, Guid, int>(0L, "ActivityContext.RaiseEvent - raising event {0} for ActivityId {1}, and callback {2}.", args.ActivityEventType, activityId, onActivityEvent.GetHashCode());
                onActivityEvent(activityScope, args);
            }
        }
コード例 #2
0
        private static ActivityScope AddActivityScope(ActivityContextState activityContextState, object userState, ActivityType activityType, ActivityEventArgs eventArgs, LocalizedString exceptionString)
        {
            bool          flag          = false;
            bool          flag2         = false;
            ActivityScope activityScope = null;

            if (ActivityContext.IsStarted)
            {
                try
                {
                    throw new ActivityContextException(exceptionString);
                }
                catch (ActivityContextException)
                {
                    flag2 = true;
                }
                if (SingleContext.Singleton.CheckId())
                {
                    ActivityScopeImpl activityScopeImpl = (ActivityScopeImpl)ActivityContext.GetCurrentActivityScope();
                    if (activityScopeImpl != null)
                    {
                        return(new ActivityScope(activityScopeImpl));
                    }
                }
            }
            if (SingleContext.Singleton.LocalId != null && !flag2)
            {
                try
                {
                    throw new ActivityContextException(DiagnosticsResources.ExceptionActivityContextMustBeCleared(DebugContext.GetDebugInfo()));
                }
                catch (ActivityContextException)
                {
                }
            }
            ActivityScope result;

            try
            {
                activityScope              = ActivityScopeImpl.AddActivityScope(activityContextState);
                activityScope.UserState    = userState;
                activityScope.ActivityType = activityType;
                ActivityContext.RaiseEvent(activityScope.ActivityScopeImpl, eventArgs);
                ExTraceGlobals.ActivityContextTracer.TraceDebug <Guid, bool>((long)activityScope.LocalId.GetHashCode(), "ActivityContext.AddActivityScope - ActivityId {0}, (activityContextState != null) = {1}", activityScope.ActivityId, activityContextState != null);
                flag   = true;
                result = activityScope;
            }
            finally
            {
                if (!flag)
                {
                    if (activityScope != null)
                    {
                        activityScope.Dispose();
                    }
                    ActivityContext.ClearThreadScope();
                }
            }
            return(result);
        }
コード例 #3
0
 internal void OnActivityContextEvent(object sender, ActivityEventArgs args)
 {
     this.logger.LogActivityEvent((IActivityScope)sender, args.ActivityEventType);
 }