using System; using System.Collections.Generic; namespace Admin.Core.EventBus { /// /// 事件总线订阅管理器 /// 接口 /// public interface IEventBusSubscriptionsManager { bool IsEmpty { get; } event EventHandler OnEventRemoved; void AddDynamicSubscription(string eventName) where TH : IDynamicIntegrationEventHandler; void AddSubscription() where T : IntegrationEvent where TH : IIntegrationEventHandler; void RemoveSubscription() where TH : IIntegrationEventHandler where T : IntegrationEvent; void RemoveDynamicSubscription(string eventName) where TH : IDynamicIntegrationEventHandler; bool HasSubscriptionsForEvent() where T : IntegrationEvent; bool HasSubscriptionsForEvent(string eventName); Type GetEventTypeByName(string eventName); void Clear(); IEnumerable GetHandlersForEvent() where T : IntegrationEvent; IEnumerable GetHandlersForEvent(string eventName); string GetEventKey(); } }