1:创建方法
public class EventSubscribeManager : Dictionary<string, Type> { private IOptions<EventRabbitMQRouteOption> _eventBusRouteOption; public EventSubscribeManager( IOptions<EventRabbitMQRouteOption> eventBusRouteOption ) : base() { _eventBusRouteOption = eventBusRouteOption ?? throw new ArgumentNullException(nameof(eventBusRouteOption)); Add(_eventBusRouteOption.Value.Publisher.Topic, typeof(RequestMQCommand)); } }
2:调用方法(需要startup中依赖注入)
private IServiceScopeFactory _scopeFactory; private EventSubscribeManager _eventSubscribeManager; public IntegrationEventSubscribeService( EventSubscribeManager eventSubscribeManager ) { _eventSubscribeManager = eventSubscribeManager ?? throw new ArgumentNullException(nameof(eventSubscribeManager)); } public async Task Subscribe() { foreach (var v in _eventSubscribeManager.Values) { //... } //还有方法TryGetValue自行调试 }