|
|
|
@ -17,11 +17,13 @@ public class EventHandlerInvoker : IEventHandlerInvoker, ISingletonDependency |
|
|
|
|
|
|
|
public async Task InvokeAsync(IEventHandler eventHandler, object eventData, Type eventType) |
|
|
|
{ |
|
|
|
var notAnEventHandler = true; |
|
|
|
if (typeof(ILocalEventHandler<>).MakeGenericType(eventType).IsInstanceOfType(eventHandler)) |
|
|
|
{ |
|
|
|
var eventHandlerCall = _cache.GetOrAdd($"{typeof(LocalEventHandlerMethodExecutor<>).FullName}{eventHandler.GetType().FullName}-{eventType.FullName}", |
|
|
|
(_) => (IEventHandlerMethodExecutor)Activator.CreateInstance(typeof(LocalEventHandlerMethodExecutor<>).MakeGenericType(eventType))); |
|
|
|
await eventHandlerCall.ExecutorAsync(eventHandler, eventData); |
|
|
|
notAnEventHandler = false; |
|
|
|
} |
|
|
|
|
|
|
|
if (typeof(IDistributedEventHandler<>).MakeGenericType(eventType).IsInstanceOfType(eventHandler)) |
|
|
|
@ -29,10 +31,10 @@ public class EventHandlerInvoker : IEventHandlerInvoker, ISingletonDependency |
|
|
|
var eventHandlerCall = _cache.GetOrAdd($"{typeof(DistributedEventHandlerMethodExecutor<>).FullName}{eventHandler.GetType().FullName}-{eventType.FullName}", |
|
|
|
(_) => (IEventHandlerMethodExecutor)Activator.CreateInstance(typeof(DistributedEventHandlerMethodExecutor<>).MakeGenericType(eventType))); |
|
|
|
await eventHandlerCall.ExecutorAsync(eventHandler, eventData); |
|
|
|
notAnEventHandler = false; |
|
|
|
} |
|
|
|
|
|
|
|
if (!typeof(ILocalEventHandler<>).MakeGenericType(eventType).IsInstanceOfType(eventHandler) && |
|
|
|
!typeof(IDistributedEventHandler<>).MakeGenericType(eventType).IsInstanceOfType(eventHandler)) |
|
|
|
if (notAnEventHandler) |
|
|
|
{ |
|
|
|
throw new AbpException("The object instance is not an event handler. Object type: " + eventHandler.GetType().AssemblyQualifiedName); |
|
|
|
} |
|
|
|
|