/// <summary> /// 添加RabbitMQ服务 /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <returns></returns> public static IServiceCollection AddRabbitMQService(this IServiceCollection services, IConfiguration configuration) { /*读取配置文件信息【通过Bind方法,对配置文件与实体进行绑定】*/ JsonMQConfig config = new JsonMQConfig(); configuration.Bind(nameof(JsonMQConfig), config); if (config == null) { throw new ArgumentNullException("MQRibbit初始化失败:配置信息缺失..."); } //注入单例--RabbitManage [使用接口代替实例] services.AddSingleton <IRabbitManage>(new RabbitManage(config)); return(services); }
public RabbitManage(JsonMQConfig mQConfig) { this._HostServer = mQConfig.HostServer; this._Queues = mQConfig.Queues; //连接参数配置 if (_HostServer == null || _Queues == null) { throw new ArgumentNullException("RabbitMQ的配置信息初始化异常:配置信息缺失..."); } //服务器连接配置 this._RabbitMqFactory = new ConnectionFactory { HostName = _HostServer.HostName.FirstOrDefault(), UserName = _HostServer.UserName, Password = _HostServer.Password, VirtualHost = _HostServer.VirtualHost, RequestedHeartbeat = _HostServer.RequestedHeartbeat, AutomaticRecoveryEnabled = _HostServer.AutomaticRecoveryEnabled }; }