private void RaiseEvent(EventCall call, IEventRaiserArgumentProvider argumentProvider) { Delegate raiseMethod; if (this.RegisteredEventHandlers.TryGetValue(call.Event, out raiseMethod)) { var arguments = argumentProvider.GetEventArguments(this.FakeManager.Object); try { raiseMethod.DynamicInvoke(arguments); } catch (TargetInvocationException ex) { if (ex.InnerException != null) { // Exceptions thrown by event handlers should propagate outward as is, not // be wrapped in a TargetInvocationException. TryPreserveStackTrace(ex.InnerException); throw ex.InnerException; } throw; } } }
private void RaiseEvent(EventCall call, IEventRaiserArgumentProvider argumentProvider) { if (this.RegisteredEventHandlers.TryGetValue(call.Event, out var raiseMethod)) { var arguments = argumentProvider.GetEventArguments(this.fakeManager.Object !); try { raiseMethod.DynamicInvoke(arguments); } catch (TargetInvocationException ex) { // Exceptions thrown by event handlers should propagate outward as is, not // be wrapped in a TargetInvocationException. ex.InnerException?.Rethrow(); throw; } } }
public bool TryTakeArgumentProviderFor(Delegate eventHandler, out IEventRaiserArgumentProvider argumentProvider) { return(this.map.TryRemove(eventHandler, out argumentProvider)); }
public void AddArgumentProvider(Delegate eventHandler, IEventRaiserArgumentProvider argumentProvider) { this.map[eventHandler] = argumentProvider; }
private void RaiseEvent(EventCall call, IEventRaiserArgumentProvider argumentProvider) { Delegate raiseMethod; if (this.RegisteredEventHandlers.TryGetValue(call.Event, out raiseMethod)) { var arguments = argumentProvider.GetEventArguments(this.FakeManager.Object); try { raiseMethod.DynamicInvoke(arguments); } catch (TargetInvocationException ex) { if (ex.InnerException != null) { // Exceptions thrown by event handlers should propagate outward as is, not // be wrapped in a TargetInvocationException. TryPreserveStackTrace(ex.InnerException); throw ex.InnerException; } throw; } } }