/// <summary> /// 创建消息队列信息并赋基本值 /// </summary> /// <param name="rabbitExchangeInfo">Rabbit交换机信息</param> /// <returns>Rabbit消息队列信息</returns> public static RabbitMessageQueueInfo ToMessageQueue(this RabbitExchangeInfo rabbitExchangeInfo) { RabbitMessageQueueInfo model = new RabbitMessageQueueInfo(); model.Exchange = rabbitExchangeInfo.Name; model.Type = rabbitExchangeInfo.Type; model.Persistent = rabbitExchangeInfo.Persistent; return(model); }
/// <summary> /// 创建消息队列信息并赋基本值 /// </summary> /// <param name="rabbitExchangeInfo">Rabbit交换机信息</param> /// <returns>Rabbit消息队列信息</returns> private RabbitMessageQueueInfo CreateBasicProps(RabbitExchangeInfo rabbitExchangeInfo) { RabbitMessageQueueInfo model = new RabbitMessageQueueInfo(); model.Exchange = rabbitExchangeInfo.Name; model.Type = rabbitExchangeInfo.Type; model.Persistent = rabbitExchangeInfo.Persistent; return(model); }
/// <summary> /// 从源头查询交换机信息列表 /// </summary> /// <returns>交换机信息列表</returns> protected override IList <RabbitExchangeInfo> QueryExchangeInfosFromSource() { XmlNodeList nodeList = xmlDoc.SelectNodes("exchanges/exchange"); if (nodeList.IsNullOrCount0()) { return(null); } IList <RabbitExchangeInfo> exchanges = new List <RabbitExchangeInfo>(); nodeList.ForEach(x => { RabbitExchangeInfo exchange = new RabbitExchangeInfo(); if (x.Attributes["name"] != null) { exchange.Name = x.Attributes["name"].Value; } if (x.SelectSingleNode("type") != null) { exchange.Type = x.SelectSingleNode("type").InnerText; } if (x.SelectSingleNode("persistent") != null) { exchange.Persistent = Convert.ToBoolean(x.SelectSingleNode("persistent").InnerText); } XmlNodeList xmlQueues = x.SelectNodes("queues/queue"); if (!xmlQueues.IsNullOrCount0()) { exchange.Queues = new List <RabbitQueueModel>(xmlQueues.Count); xmlQueues.ForEach(y => { RabbitQueueModel rabbitQueue = new RabbitQueueModel(); if (y.Attributes["name"] != null) { rabbitQueue.Name = y.Attributes["name"].Value; } if (y.SelectSingleNode("routingKeys") != null) { rabbitQueue.RoutingKeys = y.SelectSingleNode("routingKeys").InnerText.Split(','); } if (y.SelectSingleNode("autoDelQueue") != null) { rabbitQueue.AutoDelQueue = Convert.ToBoolean(y.SelectSingleNode("autoDelQueue").InnerText); } if (y.SelectSingleNode("qos") != null) { rabbitQueue.Qos = Convert.ToUInt16(y.SelectSingleNode("qos").InnerText); } exchange.Queues.Add(rabbitQueue); }); } exchanges.Add(exchange); }); return(exchanges); }