コード例 #1
0
 /// <summary>
 /// 根据点赞类型获取对象实例
 /// </summary>
 /// <param name="patternType">模式类型</param>
 /// <param name="constructorArgs">可变的构造函数列表</param>
 /// <returns></returns>
 private static BaseProducer GetInstance(PublishPatternType patternType, params object[] constructorArgs)
 {
     if (!InstanceCacheDic.ContainsKey(patternType))
     {
         lock (locker)
         {
             if (!InstanceCacheDic.ContainsKey(patternType))
             {
                 string       assemblyName = "Stack.RabbitMQ.Producers";
                 string       className    = $"{assemblyName}.{patternType.ToString()}Producer";
                 BaseProducer instance     = (BaseProducer)Activator.CreateInstance(Type.GetType(className), constructorArgs);
                 InstanceCacheDic.Add(patternType, instance);
             }
         }
     }
     return(InstanceCacheDic[patternType]);
 }