public object CreateInst(IOCFactoryModel.RegistObjectContext context, params object[] param)
 {
     if (context.Obj == null)
     {
         lock (_locker)
         {
             var diCreator = InstCreatorFactory.Create(IOCFactoryModel.InstType.DI);
             context.Obj = diCreator.CreateInst(context, param);
         }
     }
     return context.Obj;
 }
        public object CreateInst(IOCFactoryModel.RegistObjectContext context, params object[] param)
        {
            var poolMaxCount = int.Parse(context.Params[IOCFactoryModel.Enum.ContextParamNameEnum.POOL_MAXCOUNT].ToString());

            Action<object> action = (Action<object>)context.Params[IOCFactoryModel.Enum.ContextParamNameEnum.POOL_INITACTION];

            ObjectPool pool;

            try
            {
                pool = pools[context.HashCode];
            }
            catch (KeyNotFoundException)
            {
                pools.Add(context.HashCode, new ObjectPool(poolMaxCount, InstCreatorFactory.Create(IOCFactoryModel.InstType.Normal), context, action));
                pool = pools[context.HashCode];
            }

            return pool.Get(param);
        }
 public IOCFactoryModel.RegistCheckResult Check(IOCFactoryModel.RegistObjectContext context)
 {
     var diCreator = InstCreatorFactory.Create(IOCFactoryModel.InstType.DI);
     return diCreator.Check(context);
 }
 public IOCFactoryModel.RegistCheckResult Check(IOCFactoryModel.RegistObjectContext context)
 {
     return true;
 }