예제 #1
0
        private void RaiseEvent(PipelineEvent @event, bool ignoreAbort = false)
        {
            var observersForEvent = (from e in _observedEvents
                                     where e.Key == @event.GetType().FullName
                                     select e.Value).SingleOrDefault();

            if (observersForEvent == null || observersForEvent.Count == 0)
            {
                return;
            }

            foreach (var observer in observersForEvent)
            {
                _log.Verbose(string.Format(RaisingPipelineEvent, @event.Name, StageName, observer.GetType().FullName));

                observer.GetType().InvokeMember("Execute",
                                                BindingFlags.FlattenHierarchy | BindingFlags.Instance |
                                                BindingFlags.InvokeMethod | BindingFlags.Public, null,
                                                observer,
                                                new[] { @event });

                if (Aborted && !ignoreAbort)
                {
                    return;
                }
            }
        }
예제 #2
0
        private void RaiseEvent(PipelineEvent @event, bool ignoreAbort = false)
        {
            var observersForEvent = (from e in _observedEvents
                                     where e.Key == @event.GetType().FullName
                                     select e.Value).SingleOrDefault();

            if (observersForEvent == null || observersForEvent.Count == 0)
            {
                return;
            }

            foreach (var observer in observersForEvent)
            {
                _log.Verbose(string.Format(RaisingPipelineEvent, @event.Name, StageName, observer.GetType().FullName));

                observer.GetType().InvokeMember("Execute",
                                                BindingFlags.FlattenHierarchy | BindingFlags.Instance |
                                                BindingFlags.InvokeMethod | BindingFlags.Public, null,
                                                observer,
                                                new[] {@event});

                if (Aborted && !ignoreAbort)
                {
                    return;
                }
            }
        }