Пример #1
0
 /// <summary>
 /// 检查消费者实例
 /// </summary>
 /// <param name="consumer"></param>
 protected void CheckConsumer(IMqConsumer consumer)
 {
     if (consumer == null)
     {
         throw new ArgumentException("参数不能为空", nameof(consumer));
     }
 }
Пример #2
0
 /// <summary>
 /// 为所有的消息类型注册消费者
 /// </summary>
 /// <param name="consumer"></param>
 public void Register(IMqConsumer consumer)
 {
     CheckConsumer(consumer);
     lock (consumerAll)
     {
         consumerAll.Add(consumer);
     }
     Console.WriteLine($"所有类型 {consumer} 注册成功");
 }
Пример #3
0
 /// <summary>
 /// 为指定消息类型注册消费者
 /// </summary>
 /// <param name="type"></param>
 /// <param name="consumer"></param>
 protected void RegisterType(Type type, IMqConsumer consumer)
 {
     CheckConsumer(consumer);
     if (type == typeof(object))
     {
         throw new ArgumentException("object类型请改用Register非泛型方法");
     }
     lock (consumerDic)
     {
         if (!consumerDic.TryGetValue(type, out var consumers))
         {
             consumers = new List <IMqConsumer>();
             consumerDic.Add(type, consumers);
         }
         consumers.Add(consumer);
     }
     Console.WriteLine($"{type} {consumer} 注册成功");
 }
Пример #4
0
        /// <summary>
        /// 为指定消息类型注册消费者
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="consumer"></param>
        public void Register <T>(IMqConsumer <T> consumer)
        {
            var type = typeof(T);

            RegisterType(type, consumer);
        }