diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/AbpAspNetCoreMvcDaprEventBusModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/AbpAspNetCoreMvcDaprEventBusModule.cs index fba9e12707..f770f5fbb2 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/AbpAspNetCoreMvcDaprEventBusModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/AbpAspNetCoreMvcDaprEventBusModule.cs @@ -102,6 +102,10 @@ public class AbpAspNetCoreMvcDaprEventBusModule : AbpModule { var eventData = daprSerializer.Deserialize(daprEventData.JsonData, eventType); await distributedEventBus.TriggerHandlersAsync(eventType, eventData, daprEventData.MessageId, daprEventData.CorrelationId); + }else if (distributedEventBus.IsAnonymousEvent(daprEventData.Topic)) + { + var eventData = daprSerializer.Deserialize(daprEventData.JsonData, typeof(object)); + await distributedEventBus.TriggerHandlersAsync(typeof(AnonymousEventData), new AnonymousEventData(daprEventData.Topic, eventData), daprEventData.MessageId, daprEventData.CorrelationId); } } else @@ -111,6 +115,10 @@ public class AbpAspNetCoreMvcDaprEventBusModule : AbpModule { var eventData = daprSerializer.Deserialize(data, eventType); await distributedEventBus.TriggerHandlersAsync(eventType, eventData); + }else if (distributedEventBus.IsAnonymousEvent(topic)) + { + var eventData = daprSerializer.Deserialize(data, typeof(object)); + await distributedEventBus.TriggerHandlersAsync(typeof(AnonymousEventData), new AnonymousEventData(topic, eventData)); } } diff --git a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs index 62789a8408..1231daf632 100644 --- a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs @@ -217,7 +217,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend public virtual async Task TriggerHandlersAsync(Type eventType, object eventData, string? messageId = null, string? correlationId = null) { - if (await AddToInboxAsync(messageId, EventNameAttribute.GetNameOrDefault(eventType), eventType, eventData, correlationId)) + if (await AddToInboxAsync(messageId, GetEventName(eventType, eventData), eventType, eventData, correlationId)) { return; } @@ -324,6 +324,11 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend { return EventTypes.GetOrDefault(eventName); } + + public bool IsAnonymousEvent(string eventName) + { + return AnonymousHandlerFactories.ContainsKey(eventName); + } /// public override void Unsubscribe(string eventName, IEventHandlerFactory factory)