Browse Source

Add `notAnEventHandler`.

pull/11232/head
maliming 4 years ago
parent
commit
0ef71d75c3
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 6
      framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventHandlerInvoker.cs

6
framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventHandlerInvoker.cs

@ -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);
}

Loading…
Cancel
Save