/// <summary>
 /// Gets resource from 2 level resource pool.
 /// </summary>
 /// <param name="container">Name of container resource pool</param>
 /// <param name="item">Name of the actual resource inside the container</param>
 /// <returns>The object requested</returns>
 public IDisposable Get(object container, object item)
 {
     if (_Pool.CheckResource(container))
     {
         ResourcePool containerPool = (ResourcePool)_Pool.GetResource(container);
         return(containerPool.GetResource(item));
     }
     else
     {
         return(null);
     }
 }
 /// <summary>
 /// Stores item in the 2 level resource pool
 /// </summary>
 /// <param name="container">Name of the container resource pool</param>
 /// <param name="item">Name of the item</param>
 /// <param name="resource">The resource to store</param>
 public void Set(object container, object item, IDisposable resource)
 {
     if (_Pool.CheckResource(container))
     {
         ResourcePool containerPool = (ResourcePool)_Pool.GetResource(container);
         containerPool.SetResource(item, resource);
     }
     else
     {
         ResourcePool containerPool = new ResourcePool();
         _Pool.SetResource(container, containerPool);
         containerPool.SetResource(item, resource);
     }
 }