public ViewObjectPool(ViewInstanceCreatorObjectPool pool, System.Type type)
            {
                Assert.IsNotNull(pool);
                Assert.IsTrue(type.ContainsInterface <IViewObject>());

                ParentPool = pool;
                ViewType   = type;
            }
 public void Dispose()
 {
     foreach (var viewObj in Pool.OfType <IViewObject>())
     {
         viewObj.OnUnbinded.Remove(OnViewObjectUnbinded);
         viewObj.OnDestroyed.Remove(Remove);
         viewObj.Destroy();
     }
     Clear();
     ParentPool = null;
 }