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; }