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); } }