public virtual T GetOne() { T obj = default(T); if (queues.Count > 0) { obj = queues.Dequeue(); pooledObj.Activate(obj); } else { CreatePoolObj(); obj = GetOne(); } return(obj); }