Ejemplo n.º 1
0
 private bool TryOfToPoolCombain(Type type, FuncWrapper creator, out object value)
 {
     if (TryOfToPoolContainer(type, creator, out value))
     {
         return(false);
     }
     value = TryOfToPoolLocal(type, creator);
     return(true);
 }
Ejemplo n.º 2
0
        public static T GetSet(FuncWrapper creator)
        {
            var value = Get();

            if (value != null)
            {
                return(value);
            }
            value = (T)creator.Execute();
            Set(value);
            return(value);
        }
Ejemplo n.º 3
0
 private bool TryOfToPoolContainer(Type type, FuncWrapper creator, out object value)
 {
     try
     {
         value = ContainerServer.OfToPool(type, creator);
         return(true);
     }
     catch
     {
         value = null;
         return(false);
     }
 }
Ejemplo n.º 4
0
        public object OfToPool(Type type, Func <object> func)
        {
            var  creator = new FuncWrapper(func);
            bool isLocal;

            if (IsLocal || (_localTypes.TryGetValue(type, out isLocal) && isLocal))
            {
                return(TryOfToPoolLocal(type, creator));
            }
            object value;

            isLocal = TryOfToPoolCombain(type, creator, out value);
            _localTypes.GetOrAdd(type, isLocal);
            return(value);
        }
Ejemplo n.º 5
0
        public static T GetSet(FuncWrapper creator)
        {
            T value;

            return(Get(out value) ? value : (T)creator.Execute());
        }
Ejemplo n.º 6
0
 private object TryOfToPoolLocal(Type type, FuncWrapper creator)
 {
     return(LocalServer.OfToPool(type, creator));
 }
Ejemplo n.º 7
0
 public object OfToPool(Type type, FuncWrapper creator)
 {
     return(PoolExtensions.GetSet(type, creator));
 }
Ejemplo n.º 8
0
 public object OfToOne(Type type, FuncWrapper creator)
 {
     return(OneExtensions.GetSet(type, creator));
 }