【.NetCore】创建字典对象

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

  

posted @ 2020-07-31 17:08  ホホ  阅读(388)  评论(0编辑  收藏  举报