public IMvxViewModel GetAndClear(Type viewModelType, string viewModelTag = "singleInstanceCache")
        {
            if (viewModelType == null)
            {
                return(null);
            }

            IMvxViewModel vm;
            var           cachedViewModelType = new CachedViewModelType(viewModelType, viewModelTag);

            CurrentViewModels.TryRemove(cachedViewModelType, out vm);

            return(vm);
        }
        public IMvxViewModel GetAndClear(Type viewModelType, string viewModelTag = "singleInstanceCache")
        {
            if (viewModelType == null)
            {
                return(null);
            }

            Console.WriteLine($"MvxMultipleViewModelCacheWithLogs: {nameof(GetAndClear)} {viewModelType} from cache");

            IMvxViewModel vm;
            var           cachedViewModelType = new CachedViewModelType(viewModelType, viewModelTag);

            CurrentViewModels.TryRemove(cachedViewModelType, out vm);

            return(vm);
        }
        public void Cache(IMvxViewModel toCache, string viewModelTag = "singleInstanceCache")
        {
            if (toCache == null)
            {
                return;
            }

            var type = toCache.GetType();

            var cachedViewModelType = new CachedViewModelType(type, viewModelTag);

            if (!CurrentViewModels.ContainsKey(cachedViewModelType))
            {
                CurrentViewModels.TryAdd(cachedViewModelType, toCache);
            }
        }
        public void Cache(IMvxViewModel toCache, string viewModelTag = "singleInstanceCache")
        {
            if (toCache == null)
            {
                return;
            }

            var type = toCache.GetType();

            Console.WriteLine($"MvxMultipleViewModelCacheWithLogs: Add {type} to cache (HashCode = {type.GetHashCode()})");


            var cachedViewModelType = new CachedViewModelType(type, viewModelTag);

            if (!CurrentViewModels.ContainsKey(cachedViewModelType))
            {
                CurrentViewModels.TryAdd(cachedViewModelType, toCache);
            }
        }