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自行调试
}