public static async UniTask <T> Create <T>(
            this IViewElementFactory factory,
            IViewModel viewModel,
            string skinTag   = "",
            Transform parent = null,
            string viewName  = null) where T : class, IView
        {
            var view = await factory.Create(viewModel, typeof(T), skinTag, parent, viewName) as T;

            return(view);
        }
        public static async UniTask <T> Create <T>(
            this IViewElementFactory factory,
            IViewModel viewModel,
            ILifeTime lifeTime,
            Transform parent        = null,
            bool stayWoorldPosition = false) where T : class, IView
        {
            var view = await factory.Create(viewModel, typeof(T), string.Empty, parent, string.Empty, stayWoorldPosition) as T;

            lifeTime.AddCleanUpAction(() => view?.Close());
            return(view);
        }
        public static async UniTask <T> Create <T>(
            this IViewElementFactory factory,
            IViewModel viewModel,
            ILifeTime lifeTime,
            string skinTag   = "",
            Transform parent = null,
            string viewName  = "",
            bool stayWorld   = false) where T : class, IView
        {
            var view = await factory.Create(viewModel, typeof(T), skinTag, parent, viewName, stayWorld) as T;

            lifeTime.AddCleanUpAction(() => view?.Close());
            return(view);
        }