/// <summary>
 /// 消费者
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="autoConfig">自动建Exchange、Queue和Bind</param>
 public Consumer(ConsumerSettings settings, bool autoConfig)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     if (settings.AmqpConnection == null && settings.AmqpUri == null)
     {
         throw new ArgumentNullException("AmqpConnection or AmqpUri must be set.");
     }
     _clientName = string.IsNullOrEmpty(settings.ClientName) ? "undefined consumer client" : settings.ClientName;
     _amqpUri    = settings.AmqpUri;
     if (settings.AmqpConnection != null)
     {
         _amqpConnection = settings.AmqpConnection;
         _clientName     = settings.AmqpConnection.ClientProvidedName;
     }
     _mode             = settings.Mode;
     _prefetchCount    = settings.PrefetchCount <= 0 ? (ushort)1 : (ushort)settings.PrefetchCount;
     _groupName        = string.IsNullOrEmpty(settings.GroupName) ? "default" : settings.GroupName;
     _consumerCount    = settings.ConsumerCount <= 0 ? 1 : settings.ConsumerCount;
     _consumerSequence = settings.ConsumerSequence <= 0 || settings.ConsumerSequence > _consumerCount ? 1 : settings.ConsumerSequence;
     _autoConfig       = autoConfig;
 }
 /// <summary>
 /// 消费者
 /// </summary>
 /// <param name="settings"></param>
 public Consumer(ConsumerSettings settings)
     : this(settings, true)
 {
 }