public T TryGet <T>(string cacheKey, Func <T> factory, Func <ICacheItemExpiration> expiration = null) { return(cacheClient.GetValueOrCreateAsync(cacheKey, 0, () => Task.FromResult(factory())).Result); }