diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs index 6c3f93814a..80d4134db2 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs @@ -209,23 +209,12 @@ namespace Volo.Abp.EventBus protected virtual Guid? GetEventDataTenantId(object eventData) { - if (eventData is IMultiTenant multiTenantEventData) + return eventData switch { - return multiTenantEventData.TenantId; - } - - //TODO: Cache propertyInfo & Use interface or class to get Entity property. - var propertyInfo = eventData.GetType().GetProperty("Entity"); - if (propertyInfo != null && propertyInfo.GetGetMethod(true) != null) - { - var entity = propertyInfo.GetValue(eventData); - if (entity != null && entity is IMultiTenant multiTenantEntity) - { - return multiTenantEntity.TenantId; - } - } - - return CurrentTenant.Id; + IMultiTenant multiTenantEventData => multiTenantEventData.TenantId, + IEventDataMayHaveTenantId eventDataMayHaveTenantId when eventDataMayHaveTenantId.IsMultiTenant(out var tenantId) => tenantId, + _ => CurrentTenant.Id + }; } protected class EventTypeWithEventHandlerFactories