/// <summary> /// Клиент RabbitMq. /// </summary> /// <param name="config"> Конфигурация клиента. </param> /// <param name="dispatcher"> Диспетчер сообщений. </param> /// <param name="logger"> Логгер. </param> /// <param name="serializer"> Сериализатор сообщений. </param> public RabbitMqClient(IOptions <QueuesConfig> config, IMsgDispatcher dispatcher, ILogger <IMessageQueueClient> logger, IMessageSerializer serializer) : base(config?.Value, dispatcher, logger, serializer) { _typeAliasCache = new Dictionary <Type, string>(); PrepareBehaviours(Configuration); _rpcWaits = new Dictionary <string, RpcResposeWaitHandle>(); }
/// <summary> /// Gets a reference to the one and only MsgDispatcher /// </summary> /// <returns>A MsgDispatcher object (implementing IMsgDispatcher interface)</returns> public static IMsgDispatcher GetMessageDispatcher() { if (_this == null) { _this = new MsgDispatcher(); } return(_this); }
public void TestDispatchContractType() { _dispatcher = new MessageDispatcher(Mock.Of <ILogger <IMsgDispatcher> >(), new[] { new Testhandler(), }); Assert.IsNotNull(_dispatcher.TryGetByAlias("SomeContract")); }
/// <summary> /// Клиент RabbitMq. /// </summary> /// <param name="configuration"> Конфигурация клиента. </param> /// <param name="dispatcher"> Диспетчер сообщений. </param> /// <param name="logger"> Логгер. </param> /// <param name="serializer"> Сериализатор сообщений. </param> public RabbitClientBase(QueuesConfig configuration, IMsgDispatcher dispatcher, ILogger <IMessageQueueClient> logger, IMessageSerializer serializer) { Configuration = configuration ?? throw new ArgumentNullException($"Конфигурация клиента очереди не найдена или содержит ошибки"); Dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); Logger = logger ?? throw new ArgumentException(nameof(logger)); Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); DeliveryCount = new Dictionary <ulong, int>(); RegistratedConsumers = new Dictionary <string, EventingBasicConsumer>(); ConnectionFactory = new ConnectionFactory { RequestedHeartbeat = 5, }; }